Power Analysis: Teaching Old Data New Tricks
We recently reworked the website here at Carbon Design Systems. Along with adding this blog and a bunch of new demos, whitepapers and information, we also added instrumentation to figure out where people were coming from to visit us. Before that, we knew we were getting hundreds, sometimes thousands of hits a day but we weren’t doing much to capture and use that information. Since the change, armed with the new data, we’ve been able to make a bunch of changes. These changes, some major, some minor, make the site more usable both for Carbon and for our customers. It quickly occurred to me that what we were doing with our website is analogous to what our customers are doing with our products: gathering metrics and then acting upon them.
A virtual prototype is an excellent way to gather more information about your design. The models in the design provide a wealth of information about the behavior of the system while it’s running. Couple some accurate models together with system software and you can quickly find out where the performance bottlenecks are in your system. We’ve had customers using our models this way for years. What is impressive to me however, is the other ways that this information has been used.
Power optimization is a prime example of engineers taking data originally intended for one purpose and leveraging it to achieve an additional set of benefits. Back when I was doing ASIC design and verification, power wasn’t something we thought much about. We were early in the design cycle and the folks that worried at power were more in the backend. There is really no such thing as a pure backend problem anymore however. Tight product lifecycles have forced problems to be solved as early as possible. Solving problems early in the design cycle is of course a classic area where virtual prototypes can offer value. How can this value be applied to a traditional backend process like power analysis however?
It turns out that a key component in the power analysis process is the vectors used to drive the various tools used to generate the analysis data. If your vectors don’t represent how the chip really behaves then your power data will also not represent the true behavior of the chip and you’ll make flawed decisions. Virtual prototypes solve this problem by enabling real system software to run on accurate virtual models of the hardware. The virtual models can then generate the toggle data required by the power analysis tools. Savvy users can even take this one step further and use the power data to instrument the virtual models themselves and remove the need to generate large files of power data which need to be analyzed. The exact steps on how to do that are a bit too in-depth for this blog posting but a step by step breakdown was given in a recent article published in ARM IQ Magazine, entitled “Software Driven Power Analysis”
Gathering data about a problem is often the first step to a solution. When you start measuring things you can start making more educated changes and optimizations. Virtual prototypes, and the rich amount of data they provide, are natural vehicles to generate these metrics. Software driven power analysis is one of the latest ways that this data is used. Time will tell what additional optimizations will be uncovered as virtual prototype adoption becomes more widespread.