Many modern computers rely on various types of components to perform a wide variety of tasks, such as data processing, storage, and communication. Examples of such components include storage drives, network cards, and specialized operation accelerators (e.g., for encryption, media decoding, etc.). If the components of a computer fail to meet the performance requirements of a piece of software, executing that software on the computer may yield an unacceptable user experience. In such a case, the computer user may become frustrated and may mistakenly interpret the software's malfunction as a deficiency of the software, rather than as a deficiency of the computer's other components.
In order to avoid or reduce software malfunction and user frustration, software vendors may recommend that their software be executed on computers that are certified to contain components capable of providing specified performance levels. Computer vendors may communicate such certifications to consumers by displaying certification logos on advertisements and packaging for a computer. Accordingly, computer designers who seek to obtain such certifications for their computers may select components based on the performance levels they provide. Accordingly, component designers may design their components to provide the desired levels of performance according to accepted performance metrics. Performance metrics therefore play an important role in both the design and marketing of computers and their components.
Performance metrics may be used to standardize measurement and expression of performance levels of computing devices, such as individual components, sets of components, and entire computers. Different performance metrics may relate to different features of a device. For example, some performance metrics may relate to bandwidth, while others may relate to latency. Among the performance metrics that relate to latency, some may describe average latency, while others may describe worst-case latency. Also, the performance of a device may depend on the conditions under which the device's performance is measured. For example, a device that performs well when subjected to one workload may perform poorly when subjected to a different workload.
Measuring a device's performance may comprise observing or recording the device's response to a sequence of commands. The sequence of commands may be provided by a synthetic benchmark or a trace. A synthetic benchmark may contain a sequence of commands designed to expose an aspect of the device's performance under stressful conditions, or to emphasize an aspect of the device's performance under idealized conditions. A trace may contain a sequence of commands corresponding to a real-world workload of interest. For example, a trace may contain commands issued to a storage unit by a mobile computer executing a mobile computing workload.