What’s obvious to some engineers is obviously wrong to others, and that’s a problem.

By Jon McDonald

Power has been an active area of discussion for me recently. It’s come up in a more concrete way than in past conversations: customers are more interested in discussing details and not as interested in the abstract concepts. An interesting outcome of this is that now we need more context, we need to understand what we mean when we talk about power analysis at the abstract, system level. What is needed? What is appropriate to measure or estimate? And what level of accuracy can be expected?

Sometimes people have differing assumptions about the way something is going to be used that make one person’s obvious statement, obviously incorrect to another. I recently had a discussion with someone very involved with the power analysis and power optimization of a processor core. We were discussing what needed to be modeled and what level of accuracy we could expect to achieve in the transaction level model. At a high level we broke the power down into static, clock tree and dynamic, with the dynamic being the power associated with the device doing some specific processing. His contention was that it didn’t really matter what was being done because if you know what was on and what was off you could get a pretty accurate estimate of the power. I’m sure if I made this statement to a group of people, some would agree thinking this an obvious statement and some, like myself, would think this statement obviously wrong.

I should give a bit more perspective. From his point of view the power the device consumed was independent of what the device was doing. This is another way of stating what was already stated, but in a way that I had even more of a problem accepting. After discussing this for a bit we came to the realization that we had very different assumptions about the way our information would be used. Looking at an operation in detail, it was true that the watts consumed by the core were not significantly based on the operation. However, the length of time it took to complete an operation could vary greatly, so the power was indeed independent of the operation, but the energy, joules, consumed varied significantly dependent on the operation performed.

Once we got past our assumptions about the way the power information was going to be used, it became clear that an abstract model could be constructed that would track a relatively small number of variables corresponding to the power domains and clock frequencies used. With this information, the model could accurately predict the power of the device, but this was not enough to understand the energy being consumed. To do so, we have to add details about the task and operations being performed, which determines the length of time at a particular power level. This combines well with our transaction level modeling approach; for a given transaction we can define the time it takes and the power it consumes. At this level of modeling, and a reasonable understanding of the work a system will be performing, we can make an accurate prediction of the energy consumed by the system and even the dynamic power profile of the system.

An interesting outcome of this discussion was that even static power could vary significantly with the work being performed. Actually, I would argue that most modern systems don’t really have static power. With multiple power domains, dynamic voltage and frequency scaling, the only way to know the power profile is to understand and model the workload along with the system.

*–Jon McDonald is a technical marketing engineer for the design and creation business unit at Mentor Graphics.*