Electronic – Processor design: turning blocks on/off dynamically to save power

computer-architecturecpudigital-logicphysical-designvlsi

I was wondering if this is possible and if it is done in current designs. Seemed like an interesting enough idea to me. Here's a little diagram I made to help try and explain:

Basic CPU diagram to help me ask question

So let's say I'm clever and I build a bit of hardware that tracks the number of floating point operations I've done lately. It tells me, hey, you haven't done any FP operations in the last 2000 instructions! And then decides to "power down" the whole floating point pipeline hardware. Of course when a FP op does come up in the instruction queue, it needs to turn that power back on, maybe with a delay.

Does this make any sense? Can you "power down" specific parts of your chip and extract real power savings? How (physically speaking in terms of circuits) can you power down parts of hardware? And how hard is it to power them back up?

Sorry if this isn't a good traditional question! I know it's not very specific.

Cheers

Best Answer

Yes, you can power down specific sections of a chip. In general you don't see this in CPUs by shutting down sections of hardware like the excess FP blocks (like you suggested), mainly because this would lead to weird behavioral changes in the logic based on whether or not an instruction used the powered down blocks.

Where you do see it is in two places:

  1. Power-managed CPUs with multiple cores. The operating system can shut down unused cores in periods of low CPU utilization, but then the operating system will decide when to activate the core, and the core will alert the operating system when it is active. In the meantime, the operating system shunts all operations to the active core (or cores).
  2. On microcontrollers you can activate and deactivate certain functionality by providing power to the functional section of the die. So for example: on most chips you can power or choose not to power the analog to digital converter, and not powering it (even when not in use) will save you some small amount of power (which can be important in very low-power applications).

How you "power down" a section of a chip is pretty straightforward: you have a power transistor that controls the positive input rail to all of the transistors in a section of the chip die, and you turn that on and off.