x86 has a user case: legacy software.
x86 has a user case: legacy software.
x86 is a mature established architecture, RISC-V is not. Indeed I think the privledged mode architecture is still under development (i.e. what you required to run an actual OS rather than just embedded applications). I'm sure there are many other features x86 possesses than RISC-V lacks too.
I would have thought commercial RISC-V will be IoT/Embedded applications first. Fewer features required, lower costs (less to loose if it doesn't work out) and fairly static software supplied by a single or small group of vendors.
I'm as big a lover of RISC-V as anyone (and am excited about the possibility of having a completely open CPU which you can load into a free FPGA). But it's delusional to think that x86 is "legacy" at this point.
If somebody else comes out with a chip that's substantially better than x86 for servers, I expect the industry to transition quite quickly, just like it abandoned SPARC in the 90's.
I've looked at some of the costs of ARM servers, and they're way more expensive than they should be (compared to the cost going into phones)... I would think that may eventually become competitive... though Intel has a bit of room to lower pricing and still make money to compete.
I like it that you make it sound like that's easy task, when it's gonna take a good amount of time and a few billion dollars to do.
https://en.wikipedia.org/wiki/Windows_NT#Supported_platforms
But that didn't go too well. The same reason it didn't go too well (binary compatibility) is the reason why it's not going to be viable.
That's the legacy
Case in point: despite an ARM processor, running conventional desktop programs on a Raspberry Pi is mostly fine (barring performance issues). Yes, all operating systems' build stack can emit ARM binaries, but it's useless unless the developer supports it well (not gonna happen), or if there is really nice automation (like Debian).
edit: unless you're trying to say that the binary compatibility wasn't a pain in the butt. they solved it by (IIRC, not a long time OS X user), by bundling two arch binaries together for a bit. Not viable if you have 10 different architectures.
They had already done something similar in their first arch transition, 68k => PowerPC [1].
Point is, binary compatible is possible. Far from easy, sure, but it's been done before. The question is, did CPU evolve so much it became impossible to translate from one arch to another ?
[0] https://en.wikipedia.org/wiki/Rosetta_(software) [1] https://en.wikipedia.org/wiki/Mac_68k_emulator
I'd say software got a bit more complex compared to then.
Furthermore, that works if you have controlled hardware (which means easier testing and less edge cases to worry about) and a single transition to worry about (from A to B, not {A,B,C,D,E} -> {A,B,C,D,E}).
Can you imagine how insane it will be if Windows shipped a compatibility layer that translates x86 software to ARM, to RISC-V, to MIPS, to whatever? You need to test compatibility for not one but 3 architectures. No way people are gonna do that; the RoI is almost nonexistent.
So the only solution is to recompile, which is annoying if you don't have the great software infrastructure to do so.
https://en.wikipedia.org/wiki/FX!32
Its not nearly as hard as you think to translate between isas. Some things won't directly translate, like say the matrix multiply resister in some mips super computers, but you can easily just swap that out for a more mundane approach.
See https://en.wikipedia.org/w/index.php?title=Memory_ordering&o... for details.
So why would they sign this deal when it would probably be easier to use RISC-V or ARM or MIPS or ...? Perhaps AMD gave them a private demo of Zen and they realized that it was better than all of their other alternatives, even including other architectures.
But if they had their hearts set on x86, unless they could get Intel to play ball (highly unlikely), AMD was their only option even if Zen sucks.
There's VIA, though I'm not sure their processors are still relevant.
http://www.nextplatform.com/2015/03/18/google-looks-ahead-to...
Not really the most solid argument that this is a "thing".
The parent said x86 should only be used for legacy software which is a bogus statement.
Edit: Along the lines of Cavium, you might want to check out Tilera. They aren't exactly general-purpose either but they are more so than Octeons, and have respectable single-thread performance from what I've seen.
It's a multi-core MIPS64 processor with PCI, USB, and do on. Remember that MIPS has been used in everything from embedded to SGI Origin supercomputers. Quite general purpose. Cavium's addition is SOC, lower power, and accelerators.
Regarding ShenWei, it was used in supercomputers. It's probably real. What jumped out is that it's probably stolen IP from Alpha CPU and had high watts. So, not as power-efficient or legal as they'd like was my guesss.
Re Tilera
I read the MIT RAW Workstation papers where all that began. ;) Yeah, it's pretty cool but that's the one that's limited purpose. It's like an overlap between vector processors, FPGA's, and multicores. I dont know who all uses them but I did find a 100Gbps network tap and NIDS that used 3 Tileras for its muscle.
https://en.wikipedia.org/wiki/Intel_iAPX_432
Second was for BiiN parallel and high-availability system. Its i960 was a brilliant combo of RISC, HA, and security aspects of i432. Rejected by market due to no backward compatibility although used in F-35, some storage controllers, and so on. Still available for embedded but not the good version in the links. :( Especially see the manual and part with object mechanisms for containment/addressing. Cost them and Siemens a billion dollars.
https://en.wikipedia.org/wiki/Intel_i960
https://en.wikipedia.org/wiki/BiiN
Third time, in parallel with i960, was i860 RISC core for high-performance supercomputing and embedded systems. Had performance issues and just wasn't popular in general. Another loss.
https://en.wikipedia.org/wiki/Intel_i860
Itanium combined RISC, VLIW, PA-RISC style security, and reliability features. EPIC/VLIW probably what did it in the most unfortunately because reliability, speed, and security combo were good. Link below is security features as they alone justified in imho over x86 and you probably never saw them in comparisons. Just dollars, GHz, and GFLOPS as if that's all that matters. Used in appliances, supercomputers, and workstations but going away probably at a cost of hundreds of millions of dollars.
http://www.intel.com/content/dam/www/public/us/en/documents/...
So, Intel has tried to give us something better than x86 four times already at a cost of billions of dollars. To their credit, they tried and produced a few great designs with some flaws for sure but great in key ways. Market rejected them in favor of raw price/performance and backward compatibility with shit software. So, we're stuck with that given Itanium will go into legacy mode, VIA is loosing money on their x86 business, Transmeta was bought, and Loongons w/ x86 emulation are shaky investment.
Gabriel's Worse is Better is in full effect here...