Article: Why Apple Won’t ARM the MacBook
By: rwessel (robertwessel.delete@this.yahoo.com), May 10, 2011 11:01 am
Room: Moderated Discussions
Mark Roulo (nothanks@xxx.com) on 5/10/11 wrote:
---------------------------
>What I do think is a possibility is a dual-CPU laptop with *both* an x86 and an
>ARM. Most of the system stuff could/would be run on the ARM when not plugged into
>a wall socket. With universal binaries and Apple owning most of the typical software
>stack (browser, DVD player, iTunes, Pages, Keynote, etc.) Apple could ensure that
>this works well. For non-Apple software, the vendors could supply universal binaries
>*or* those would just run on the x86 (and run down the battery faster).
>
>When running just on the ARM, the x86 could/would be in a deep sleep mode and use next to no power.
>
>To me this *seems* to be the best of all worlds. Very low power when you want/need
>it, high performance when you either have access to it (plugged into the wall) or
>need it and are willing to eat the shorter battery life.
Of course a heterogynous multi-core x86 could accomplish much of the same. A low-performance/low-power core plus a hot/fast core on the die (perhaps small multiples of both) would allow low power operation with very little change to the (x86) software stack.
Obviously gating the power to the fast core is crucial, and getting adequate performance (at low enough power consumption) is critical, but consider a "dual" core chip with an (improved) Atom and a Sandy Bridge core. Cache coherence would present some interesting challenges but nothing that seems particularly insurmountable. Almost certainly you’d share the L3, and the individual cores (deep) sleeping (or not) would happen in much the same way as current multi-core systems. You probably would end up with coherence between the fast and slow cores being active (probably automatically when cores from each side actually being active) only when transitioning between the two sides, accepting that the fast core side would probably take a substantial performance hit while the slow cores need to be in the coherence domain. So one of the main OS mods would be to avoid running on all the cores (although doing so would work just as expected, but just not perform all that well).
A problem with any hybrid system will be power consumption of stuff outside the CPU, not least memory and storage devices. For example, the one RAM subsystem is going to have to support both fast and low power modes of operation.
---------------------------
>What I do think is a possibility is a dual-CPU laptop with *both* an x86 and an
>ARM. Most of the system stuff could/would be run on the ARM when not plugged into
>a wall socket. With universal binaries and Apple owning most of the typical software
>stack (browser, DVD player, iTunes, Pages, Keynote, etc.) Apple could ensure that
>this works well. For non-Apple software, the vendors could supply universal binaries
>*or* those would just run on the x86 (and run down the battery faster).
>
>When running just on the ARM, the x86 could/would be in a deep sleep mode and use next to no power.
>
>To me this *seems* to be the best of all worlds. Very low power when you want/need
>it, high performance when you either have access to it (plugged into the wall) or
>need it and are willing to eat the shorter battery life.
Of course a heterogynous multi-core x86 could accomplish much of the same. A low-performance/low-power core plus a hot/fast core on the die (perhaps small multiples of both) would allow low power operation with very little change to the (x86) software stack.
Obviously gating the power to the fast core is crucial, and getting adequate performance (at low enough power consumption) is critical, but consider a "dual" core chip with an (improved) Atom and a Sandy Bridge core. Cache coherence would present some interesting challenges but nothing that seems particularly insurmountable. Almost certainly you’d share the L3, and the individual cores (deep) sleeping (or not) would happen in much the same way as current multi-core systems. You probably would end up with coherence between the fast and slow cores being active (probably automatically when cores from each side actually being active) only when transitioning between the two sides, accepting that the fast core side would probably take a substantial performance hit while the slow cores need to be in the coherence domain. So one of the main OS mods would be to avoid running on all the cores (although doing so would work just as expected, but just not perform all that well).
A problem with any hybrid system will be power consumption of stuff outside the CPU, not least memory and storage devices. For example, the one RAM subsystem is going to have to support both fast and low power modes of operation.