What are some examples of power draw savings that Linux is leaving on the table?
“Modern Standby” could be made to actually work, ACPI states could be fixed, a functional wake-up state built anew, etc. Hell, while it would allow pared down CPUs, you could have a stop-gap where run mode was customized in firmware.
Too much credit is given to Apple for “owning the stack” and too little attention to legacy x86 cruft that allows you to run classic Doom and Commander Keen on modern machines.
Where do you get this from? I could understand that they could get rid of the die area devoted to x86 decoding, but as I understand it x86 and x86-64 instructions get interpreted by the same execution units, which are bitness blind. What makes you think it's x86 support that's responsible for the vast majority of power inefficiency in x86-64 processors?
Reduced I-Cache, uop cache, and decoder pressure would also have a beneficial impact. On the flip side, APX instructions would all be an entire byte longer than their AMD64 counterparts, so some of the benefits would be more muted than they might first appear and optimizing between 16 registers and shorter instructions vs 32 registers with longer instructions is yet another tradeoff for compilers to make (and takes another step down the path of being completely unoptimizable by humans).
Sure, but the topic is optimizing power efficiency by removing support for an instruction set. That aside, if an instruction isn't very performant, it isn't much of an issue per se. It just means it won't get used much and so chip design resources will be suboptimally allocated. That's a problem for Intel and AMD, and for nobody else.
(M1 does, because they don't implement aarch32, or thumb).
>Operating systems need to carry the baggage in x86 if they want to allow users to run on old and new processors.
What do you mean by this exactly? Are you talking about hybrid execution like WOW64, or simple multi-platform support like the Linux kernel?
WOW64 is irrelevant as far as power efficiency is concerned if the user doesn't run any x86 software. If the user is running x86 software, that's a reason not to remove that support.
Multi-platform support shouldn't have an effect on power efficiency, beyond complicating the design of the system. Saying that the Linux kernel should stop supporting x86 so x86-64 can be more power-efficient is like saying that it should stop supporting... whatever, PowerPC, for that same reason. It's a non sequitur.
Saving die space also has no effect on power efficiency, beyond reducing the total transistor count. I'd be very surprised the x86-specific decoding logic makes up a significant area of your typical die. Maybe you'd make the processor 3% more efficient? Something like that?
I’m not sure how it works in the modern era. But back in the day there was also a performance cost when you had a mix of 16 bit code and 32 bit code in memory. I don’t know how it would be in 32 bit vs 64 bit.
And being able to get away with less RAM also improves battery life because keeping RAM refreshed uses energy - again a bigger factor on mobile.
The smaller the die, the less energy it uses. You can also use that space for efficiency cores.
Like I said, if the 32-bit stuff is getting used, that's an argument not remove the support.
> And being able to get away with less RAM also improves battery life because keeping RAM refreshed uses energy - again a bigger factor on mobile.
Memory allocation exists purely at the software level. The hardware doesn't understand whether a particular region has been allocated or not; the only difference between an allocated page and an unallocated one is that the former appears in the OS's VMM data structure as allocated (i.e. it's just more bits in memory). The power consumption of RAM scales with the total cells installed, not with how much the OS has decided is "in use".
So should Apple have also kept the PPC emulator around for Macs?
There's no such thing as "how little RAM you can get away with". A user is always better served by having more RAM. The limiting factor is the monetary budget, not the power budget. If a manufacturer puts less RAM on a computer it's only to cut costs, not as a power optimization. Compared to the CPU, RAM is free, power-wise. In fact, since optimizing for space is often in opposition to optimizing for time, having more RAM can save power by saving time spent computing things.
>So should Apple have also kept the PPC emulator around for Macs?
I'm not really interested in discussing what compatibility support should be included in any given OS. It's not the topic of discussion. The topic of discussion is whether cutting x86 support from x86-64 processors would result in significant power savings, and I maintain that it wouldn't. It would result in at best marginal power savings at the cost of a useful feature.
I'm confused, how is any of this related to "x86" and not the diverse array of third party hardware and software built with varying degrees of competence?