Modern architecture research relies heavily on detailed pipeline
simulation. The section of the program simulated is of great importance to the
relevance and correctness of a study, since the behavior of the program can
vary significantly during different phases of a program's execution. In this
paper we propose Basic Block Distribution Analysis as a semi-automatic approach
for determining where to simulate in order to achieve a representative sample
of the program. This approach is based upon using the profiles of a program's
code structure (basic blocks) to uniquely identify different phases of
execution in the program. We show that this analysis accurately finds the
periodic (cyclic) behavior exhibited during a program's execution across
several different architectural metrics (e.g., IPC, branch miss rate, cache
miss rates, value misprediction, address misprediction, and reorder buffer
occupancy). More importantly, our basic block analysis finds simulation points
representative of the whole program's execution for these different
architectural features.
Pre-2018 CSE ID: CS2001-0667