And what about having both x86 and ARM on the same CPU? Could I run my Linux on x86 and create VMs running on the ARM cores, or the other way around?
While we wait for true heterogeneous systems of the future, right now you can use QEMU for it. It is a pretty common workflow for a lot of deployments including ours.
You can run arm64 VMs with QEMU on amd64 platforms.
Or if you wanna go docker route, you can use qemu static multiarch images.
I'd be surprised if they didn't go semi custom with Cortex Xn/Neoverse Vx, unless nVidia purposefully cuts them off from that resource of course, which has always been one of my main reservations over the nVidia ARM sale.
I had an off the record conversation with our (ARM based SoCs) suppliers on this and I can say there is general unease. We are doing initial architecture work to target 2023/24 timeframe systems and I did ask (our non NV vendors) if we should be expecting something. Some of our vendors do have Plan Bs.
I bet they are watching the situation closely and also watching how RISC V evolves.
If NV has baseband ip, QC should be real worried. If NV start making server chips, the immediate pressure would be other ARM chip vendors. Because they are targeting the same customer base who are either having new workflows and/or have no code base that relies on x86's legacy.
For the rest (including us), who are still going to be relying on x86-64/amd64 build/packages for a little while longer....x86 legacy is a blessing and a curse.
The crazy part of all of this is that, most generic x86-64 SW has nothing targeting even baseline Skylake architecture!!!!.
The SW we are pulling from debian repositories don't target any modern x86 architecture.
On one hand it means you can run your SW on anything, on the other hand it means there is so much performance left on the table.
Same story on Windows. You can run binaries compiled from 15 years ago!!!
As long as you have ABI compatibility you are good to go.
Phoronix usually have good articles on this, worth reading.
Check Intel's Clear Linux vs the other distros. And generic x86-64 vs Skylake tuned tests.
Intel Clear Linux is the fastest distro out there.
However it is targetting ..... wait for it.... Sandy Bridge minimum!!
Windows store was supposed to be the solution to this(for apps using MS dev environment at least), with AOT triggering once on install. However it failed to take off.
Android handles this with JIT. But not being native means there is always something left on the table, but ART is improving a lot each release.
The AOSP however is still not properly tuned to the platform. With only HAL and /boot and /vendor SOs being compiled to target arch.
Going forward I am interested to see if IR is something that could solve this. Like how .NET 5 performs AOT from IR code.