Exophase
Great insight. My belief is that Intel needs to have, by far, the most compelling hardware on a perf/watt and perf/$ basis. This will lead to more widespread adoption of the platform, and then the software optimizations will fall into place (with some "big check" writing going on, too).
It is an uphill battle for Intel, for sure, but if they are serious about winning here, they have a pretty good shot at doing it. If they are at the top of their game, I see good things. If they slack off even a tiny bit, it'll be game over in the phone space.
Luckily, in tablets Windows 8 reverses the tables and gives them the advantage over Windows RT. I don't know who in the ARM ecosystem will do what Intel is doing in the Android one to get things to work properly.
There's a lot of metrics. Not just perf/W, perf, and perf/mm^2 for the CPU, but lots of other integration factors and political ones. And when you get down to it, I don't think the perf/W curve of the CPU matters in the market as much as we think it does. How many reviews are even testing battery life while using things that stress the phone? What seems to matter the most is dynamic power management of the SoC and load balancing plus efficiency of the software stack. That's why iOS phones and tablets did more than fine when they still had consistently slower CPUs than the competition. Don't get me wrong, Intel is doing great here; actually I think that the combination of low power states, good turbo, and good integration of peripherals are the real win they've pulled off. But I also don't think they're going to grow a massive lead in these areas, and they're not going to capture their own new OS market like Apple.
And I just don't see Intel
dominating the mobile space until they get Apple running them and Samsung makes them their flagship, etc. And I don't see these companies abandoning their massive vertical integration investments to buy Intel chips unless they fall very, very behind. Even further behind than Apple's PPC cores fell vs Intel's x86, because they were the minority player to start with. I don't see this happening any time soon. I also don't see the cheap low end Chinese SoCs giving way to Intel, I don't see how they can possibly compete on price there, particularly not for that market domestically.
What I don't get is why Intel has to dominate or "win" to be successful. There's not enough room in the market for everyone, true, and we're already seeing major players give way, but there's room for more than just one. I mean, there has been so far.
I do agree with you that right now x86 Windows 8 tablets are a more compelling buy than ARM Windows RT tablets. Microsoft's push here is a strong ally for Intel. While they looked like they were boosting the ARM ecosystem this poor contrast almost feels like they're blasting it instead. Nonetheless, the onus is still on MS to actually take enough of this market for it to matter. If someone's going to fix it it may as well be MS themselves because they're the ones staking the product on ARM; Google never staked Android on x86.
Well, Atom executing ARM code at 40% of the same code in x86 is still impressive, especially if it does it with 100% accuracy. I don't think there's any open source emulators that achieve comparable results. QEMU is one of the best and non-native code execution is at best like 10% of native performance.
Thankfully, all my killer apps on Android are the native Google apps. If Intel can get a high end design win, I'd be ok picking up an Atom based phone, the processor is pretty negligible compared to phone design, battery life, etc. I'd probably care more about faster flash storage or more ram than the other specs.
It's not 100% compatible right now, much less 100% accurate. I don't know how much the current incompatibilities are down to bugs they can fix or unsafe assumptions they're making to optimize it.
But your comparison isn't fair. Intel's emulator is a "user mode emulator." What you're comparing it to is a "system mode emulator."
Basically, a user mode emulator has a lot lower overhead because they don't have to emulate anything but the CPU and they rely on the OS to provide a safe abstraction for memory accesses. So you can access pointers directly instead of having to check and convert them. And you don't have to emulate any privileged CPU stuff; no supervisor mode, no interrupts or anything like that. And syscalls are handled natively by the OS.
In this case things the may be even lower because the interface NDK code has with the rest of the world is even more limited.
qemu has both system mode and user mode style emulation. The 10% figure you're referring to is probably while running the former. If you booted an emulated system it was definitely the former. You should check out the user mode emulation some time. There have been various papers of user mode emulators for things like PPC to x86 that get much better than 40% native performance. Like Intel's numbers this is for running stuff like SPEC2k. I don't know how much either extends to the real world.