Beyond Power, Performance And Area


For the past five decades, the tradeoffs in IC design have always been between power, performance and area. Performance dominated for most of the history of IC development—remember the MIPS and MHz/GHz wars—followed closely by area because of the need to cut costs.

Over the past few years, power has moved from an afterthought to the front of the pack because of the emphasis on mobility and battery life. Even in data centers, power has suddenly emerged as the low-hanging fruit for cutting energy costs.

In the future, engineers will have to consider another factor: function. Just as power is a global issue—it affects all parts of a device rather than just a single portion of an SoC, for example—function has a direct effect on area, power and performance. Adding more functions, or enhancing those functions, requires tradeoffs, re-thinking and sometimes re-engineering every facet of PPA.

The real driver behind this shift in functional importance is the need to do more useful things with portable electronics. It’s not enough just to check e-mail or make voice calls anymore. Devices now need to stream video, do intensive graphics for gaming, and increasingly they need to do real work such as spreadsheets and document creation.

But they don’t necessarily need to do it as well as a powerful desktop computer with all the same options, which can save on power, performance and area. The 80/20 rule applies here, and it’s being looked at carefully by the engineers who create the specs for devices. You don’t have to do everything to perfection. You just have to do it well enough to make it useful.

To accomplish this also requires tradeoffs. Slick interfaces such as voice commands may require more energy to stay awake and responsive, which means less performance and a lower power budget for other portions of an SoC. This helps explain the proliferation of multicore and multiprocessor architectures optimized for individual functions rather than trying to power up and power down a single processor that offers maximum performance for a function that doesn’t require it.

Stacking of die will improve this recipe even further. Being able to directly connect to portions of memory rather than sharing resources will make individual functions much more controllable from a PPA standpoint. But as we begin building these 2.5D and 3D stacks, increasingly it will be function that determines PPA rather than the other way around.