My question is why is the shorthand for 32-bit x86 when the shorthand for 64-bit is x64?
I am guessing it has something to do with the days of 386s and 486s, when the 32-bit processors all ended in 86, but surely there were processors that didn't end in 86 and where still 32-bit?
Anyone know the history of this or can direct me to a good source of info.
Thanks
-
From Wikipedia: The term x86 refers to a family of instruction set architectures based on the Intel 8086 CPU.
From bindbn -
Probably because the x86 line became synonymous with 32 bit processors for quite some time, while x64 was specifically a designation for 64 bit as applications and operating systems were transitioned over, and now there are software applications that require the 64 bit designation in order to run (like some VM software).
In other words, it's more marketing than technology for the reason.
gWaldo : x86 comes from the 8086, 286, 386, 486, 586, etc. It could have as easily been "*86"John Gardeniers : And because x86 originated with the 8086 I've never been able to work out why it's always associated with 32 bits. As I recall, the 8086 was a 16 bit processor, which used double registers to enable 32 bit memory addressing. Intel was far from being a leader in the field in those days. BTW @gWaldo, you left out the 80186.Bart Silverstrim : Coincidence. From Wikipedia, "Both the architecture and the physical chip were therefore developed rather quickly by a small group of people, and using the same basic microarchitecture elements and physical implementation techniques as employed for the slightly older 8085 (and for which the 8086 also would function as a continuation)." There was also an 8087 and 8089.gWaldo : Yea, I left out the 80186 because I honestly couldn't remember if it had been a released product (and was feeling too lazy to look it up...)From Bart Silverstrim -
Well, there once was a chip called 8086, with a cheaper version called 8088 that was used in a personal computer called IBM PC. An improved version of that chip was made and called 80186, though that wasn't a very popular version. However, an improved improved version was then made, and called 80286. Now, that was a very popular chip, in particular because it was used in a computer called IBM PC AT.
Later, Intel, which created and sold the 8086, 8088, 80186 and 80286 chips, all of which had a 16 bits architecture, saw the need to create a 32 bits chip to compete with similar offerings by others. To take advantage of its incumbent position, it made the new chip capable of running software made for the previously mentioned chips. Naturally, Intel called this new chip the 80386.
Now, by this time there were lots of computers using various versions of the Intel chips, and there were also non-Intel chips that were compatible with the Intel ones. So people started referring to them as 80x86.
After a while, Intel launched a new chip, but it decided to drop the 80, so it became the 486 instead of 80486. Likewise, people was dropping the "80" from the front of "80x86", and calling this stuff just x86.
Now, I'm pretty sure some will come and say Intel branded their chips x86 at such and such time, which they did, but I don't care.
The fact is that the ever-increasing middle digit gave rise to 80x86, and x86 came from that -- even if 80186 and 80286 were not 32 bits.
So, once Intel finally went 64 bits, what did it call its new architecture? Right! IA64! :-) It also retroactively renamed the x86 to IA32, so to speak. Only IA64 was not compatible with x86, I mean, IA32, so everyone ignored it.
And then came AMD, which decided the market wanted a 64 bits CPU that was compatible, to the extent possible, with the x86 family. As a marketing appeal, they called it the "x86-64" family, and they were hugely succesful. So much so that Intel ended up grudgingly following with their own 64 bits CPU based on x86.
Later, because people are lazy, the x86-64 because known simply as the x64.
So, in answer to your question, because x64 is shorter than x86-64.
Alex : +1 for a great explanation.Jeremy Hajek : Not to nit pick but to be compltely exact, AMD never marketed a 64 bit chip. x64 or x86_64 that AMD came out with were 64 bit extensions added to the x86 instruction set Intel created - hence x86_64 as opposed to Intel's Itanium (IA_64) which was a true 64 bit chip not compatable with x86 instruction set.cdkMoose : Additionally, I believe Intel faced trademark issues because they were just using numbers and you can't trademark a sequence of numbers, that is why what would have been the 80586 became the Pentium, a made-up name that they could continue to trademark.Michael Stum : To clarify: AMD called their extensions AMD64, and Intel calls theirs (that they licensed from AMD) Intel64. There are a few subtle differences (they are not 100% compatible), so most OS Vendors usually use the common Subset. On a Windows 2008 DVD, the install folder is actually called AMD64 (as opposed to I386 on 32-Bit). I don't know where x86_64 comes from: From AMD since it's an extension to x86 or from Unix-Vendors that wanted a neutral term.Lie Ryan : @Jeremy Hajek: AMD64/x86_64 is a true 64-bit chip design, its 64-bit mode is not an emulation and has no performance impact (and in fact, its 32-bit mode is also not an emulation). The chip has 64-bit instruction set and 64-bit registers, that makes it 64-bit chip. I don't know where you get the impression that AMD never marketed a 64-bit chip from. It's true though, that AMD never marketed a 64-bit that breaks compatibility with 32-bit chip, like Intel did with its IA64.From Daniel Sobral -
Well,
x64never really came from an instruction set or chip manufacturer. It originally came from Windows XP. The first 64 bit edition of Windows was given the titleWindows XP x64. And I guess the termx64stuck from there.The
x86moniker comes from the 32bit instruction set. So allx86processors (without a leading80) run the same 32 bit instruction set (and hence are all compatible). Sox86has become a defacto name for that set (and hence 32 bit).AMD's original 64 bit extension on the
x86set was calledAMD64. Intel later licensed it, but even still the name for the 64 bitx86instruction set is typicallyAMD64.But mostly it's brand distinction. Here's what a few different major Operating System distributions call each 64 bit flavor:
- Ubuntu - amd64
- Centos - x86_64
- OpenSUSE - x86_64
- FreeBSD - amd64
- OpenBSD - amd64
- NetBSD - amd64
- Solaris - x64
- Windows Server - x64
So basically, it seems that Linux prefers
x86_64, BSD prefersamd64and the othersx64...But the big thing to note is that they all mean the same thing for marketing purposes. In subtlety they do mean different things (well,
amd64means something different fromx86_64(the former being a vendor specific architecture, and the latter the subset of two vendors architectures), butx86_64===x64), but for anyone except programmers writing in assembly or machine code it really doesn't make a different...From ircmaxell -
x86 and x64 are the names of the cpu architectures. There is more to a cpu architecture than just the number of bits per register.
x64 takes is name because the jump to 64 bits is the biggest change in the architecture from x86, but that jump is far from the only change.
x86 gets it's name from the venerable 8068 processor and family, which included 80286, 80368, 486, etc. At the time that x86 became established as a name for the architecture, 32 bits per register was not considered an important enough feature to justify building it into the name.
From Joel Coel
0 comments:
Post a Comment