15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

8.2 Performance Evaluation: Techniques, Tools,<br />

and Benchmarks<br />

Lizy Kurian John<br />

Introduction<br />

State-of-the-art high performance microprocessors contain tens of millions of transistors and operate at<br />

frequencies close to 2 GHz. These processors perform several tasks in overlap, employ significant amounts<br />

of speculation and out-of-order execution, and other microarchitectural techniques, and are true marvels<br />

of engineering. Designing and evaluating these microprocessors is a major challenge, especially considering<br />

the fact that one second of program execution on these processors involves several billion instructions<br />

and analyzing one second of execution may involve dealing with tens of billion pieces of information.<br />

In general, design of microprocessors and computer systems involves several steps (i) understanding<br />

applications and workloads that the systems will be running, (ii) innovating potential designs, (iii) evaluating<br />

performance of the candidate designs, and (iv) selecting the best design. The large number of<br />

potential designs and the constantly evolving nature of workloads have resulted in designs being largely<br />

adhoc. In this article, we investigate major techniques used in the performance evaluation process.<br />

It should be noted that performance evaluation is needed at several stages of the design. In early stages,<br />

when the design is being conceived, performance evaluation is used to make early design tradeoffs.<br />

Usually, this is accomplished by simulation models, because building prototypes of state-of-the-art<br />

microprocessors is expensive and time consuming. Several design decisions are made before any prototyping<br />

is done. Once the design is finalized and is being implemented, simulation is used to evaluate<br />

functionality and performance of subsystems. Later, performance measurement is done after the product<br />

is available in order to understand the performance of the actual system to various real world workloads<br />

and to identify modifications to incorporate in future designs.<br />

Performance evaluation can be classified into performance modeling and performance measurement,<br />

as illustrated in Table 8.2. Performance measurement is possible only if the system of interest is available<br />

for measurement and only if one has access to the parameters of interest. Performance measurement<br />

may further be classified into on-chip hardware monitoring, off-chip hardware monitoring, software<br />

monitoring, and microcoded instrumentation. Performance modeling is typically used when actual<br />

systems are not available for measurement or, if the actual systems do not have test points to measure<br />

every detail of interest. Performance modeling may further be classified into simulation modeling and<br />

analytical modeling. Simulation models may further be classified into numerous categories depending<br />

© 2002 by CRC Press LLC<br />

TABLE 8.2 A Classification of Performance Evaluation Techniques<br />

Performance measurement Microprocessor on-chip performance<br />

monitoring counters<br />

Off-chip hardware monitoring<br />

Software monitoring<br />

Micro-coded instrumentation<br />

Performance modeling Simulation<br />

Trace driven simulation<br />

Execution driven simulation<br />

Complete system simulation<br />

Event driven simulation<br />

Software profiling<br />

Analytical modeling<br />

Probabilistic models<br />

Queuing models<br />

Markov models<br />

Petri net models

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!