Digital circuits are driven by clocks that drive the transition of states. At a fundamental level the performance of such circuits is a function of the clock speed measured in MHz. However, the complexity of even the most elementary data processing, transfer and storage systems leads to scenarios where the value in MHz of the digital clock does not correlate sufficiently to the functional speed of these systems. For example, performance for a CPU might be defined in-terms of a functional metric like Million Instructions per Second (MIPS). The performance of a data transfer interconnect or a memory storage block is often defined in-terms of MB per Second (MB/sec).
However, users of programmable systems can’t necessarily use functional paramters of individual blocks to extrapolate the performance of the overall system. Software developers who use processing systems are interested in metrics such as “Image Decode Time”, “HTML Parsing Time” or complex tasks such as “Web Page Render Time”. Performance for such metrics varies because the time taken to decode an image varies based on factors such as resolution of image, complexity of scene and the availability of hardware accelerated image decoders and high-speed data transfer buses to move data around.
Finally, end users and customers of computing platforms care only about high level performance considerations such as “Responsiveness” or “Download Time”.
The key takeaway here is that the performance of complex programmable systems is highly dependent on the underlying data being processed and can only meaningfully be described in-terms of high level objectives and uses of the platform.