Browse Prior Art Database

Software Sampling Technique for Generating a Dynamic Instruction Mix Estimate for a Pipelined CPU

IP.com Disclosure Number: IPCOM000106757D
Original Publication Date: 1993-Dec-01
Included in the Prior Art Database: 2005-Mar-21
Document File: 2 page(s) / 65K

Publishing Venue

IBM

Related People

Keller, TW: AUTHOR [+2]

Abstract

In a pipelined CPU, such as the RS/6000*, instruction pipelining causes anomalies in the stopping of the CPU for an interrupt and thus causes distortions in instruction profiling. This distortion prevents the meaningful extraction of dynamic instruction mix data from the sampled data. A technique is disclosed which corrects for this distortion.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Software Sampling Technique for Generating a Dynamic Instruction Mix Estimate for a Pipelined CPU

      In a pipelined CPU, such as the RS/6000*, instruction
pipelining causes anomalies in the stopping of the CPU for an
interrupt and thus causes distortions in instruction profiling.  This
distortion prevents the meaningful extraction of dynamic instruction
mix data from the sampled data.  A technique is disclosed which
corrects for this distortion.

      A techniqe for estimating frequency of execution of basic
blocks is extended to correct the distortion induced by a pipelined
CPU architecture.  The extended technique correlates sampled program
counter (PC) data to basic blocks, and subsequently, to individual
instructions within those blocks in order to overcome the sampling
anomalies introduced by a pipelined CPU.

      A basic block is an instruction sequence with one entry and one
exit, and upon entry to this block, each instruction in this block
issequentially executed before exiting.

      To summarize the referenced disclosure, the PC return address
is sampled during a periodic timer interrupt.  This PC value along
with the symbol table data extracted from the UNIX** AIX "nm" command
and the "pseudo assembler listings" generated during the compilation
of source files are analyzed in such a way that the PC values (ticks)
are correlated back to basic blocks and higher levels of code
abstraction.

      However, due to the pipeline effect, the ticks cannot be
directly used to estimate a dynamic instruction mix.  Since
instructions "in the pipeline" are not interruptible, the PC can
never be interrupted at some instruction addresses.  Thus, those
particular instructions can never accumulate ticks and...