An ESL Measurement Epiphany

How to figure out whether system problems are due to the hardware or the way software uses the hardware.

popularity

By Jon McDonald

Sometimes something becomes so simple and clear it’s shocking. I recently experienced such an epiphany. It started with a typical discussion on hardware software relationships and tradeoffs. How do you know what should be done in which?

Realistically there is no automatic method to determine the proper partition. The best we can do is to propose a potential solution, then test that solution against our problem space. We’ve been doing this for a long time. Hardware designers propose a potential implementation, and then go through the steps of verifying and analyzing the performance and capabilities of that proposed solution. How do we know if a power or performance problem in our system is due to the hardware or to the way the software uses the hardware?

ESL methodologies and transaction-level modeling techniques have allowed hardware engineers and architects to quickly characterize their systems and understand the impact of the tradeoffs they are making. What happens on the software side? Software has become a huge part of almost every system designed today. In most organizations, a limited analysis of at least some of the software running against the hardware is performed. In the vast majority of cases the software is developed in isolation, or at best against a functional model of the system, possibly a hardware prototype or a virtual prototype, with no feedback on the efficiency with which the software uses the hardware.

How can we reasonably expect to develop efficient software for a particular hardware platform without feedback on the effectiveness of the software we are developing? For virtually every area of endeavor in which performance is critical, the optimization flow involves performing the activity, measuring the result, making a change and repeating the process. For the optimization flow to result in improvement it is critical that an accurate metric is available to measure the effectiveness of the various approaches. Yet in many power or performance critical applications no accurate metric is available for the software developer to compare alternatives approaches to a problem. Without an accurate metric how can we be surprised when our systems do not perform to the expected potential?

By leveraging our ESL models to provide not just an executable virtual prototype, but a virtual prototype that accurately reflects the power and performance capabilities of the hardware, we can converge on an efficient software implementation that takes advantage of the capabilities provided by our hardware platform. Without measurement we are developing our software hoping for the best. With an accurate ESL platform to run our software against we can quantitatively understand the efficiency of our software running on our hardware and ultimately realize the most efficient system for a given combination of hardware and software.

For me that simple idea of measuring the software running on the hardware was a surprisingly natural way of leveraging the ESL model already being created for hardware performance analysis. In fact, after thinking about it I have trouble understanding how we can expect performance or power critical software development to succeed without an accurate metric to measure against.

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