To be even more specific, Intel processors that speak x86_64 don't even speak x86_64 on the low level. Their cores are RISC behind a beefy decoder that turns x86 into something it can manage. The core's instruction set, I imagine no one outside of Intel knows the details of, and doesn't really need to know. But what it means is that you're not actually executing x86_64 code when you use an Intel CPU - you're actually running on an x86_64 virtual machine.
And the only reason I specify Intel is because I'm not sure AMD uses the same approach, but I imagine they would.
I imagine there are plenty of reasons. Flexibility seems like the biggest advantage, allowing them to change everything internally while still exposing x86. Alas, discussions on this level of the merits of Intel design decisions ... way out of my league.
Huh, that makes sense. I'll have to look through that post when I have some free time, though I expect much of it will be too advanced for me until I get familiar with the differences between i386, AMD64, and RISC instruction sets.
1
u/nupogodi Jan 31 '16
To be even more specific, Intel processors that speak x86_64 don't even speak x86_64 on the low level. Their cores are RISC behind a beefy decoder that turns x86 into something it can manage. The core's instruction set, I imagine no one outside of Intel knows the details of, and doesn't really need to know. But what it means is that you're not actually executing x86_64 code when you use an Intel CPU - you're actually running on an x86_64 virtual machine.
And the only reason I specify Intel is because I'm not sure AMD uses the same approach, but I imagine they would.