Instructions can execute differently on a
machine based on the way that they are arranged. The software technique
called instruction scheduling performs the reordering of instructions to
increase efficiency. A drawback of current instruction scheduling
approaches is that detailed knowledge of the machine is required in
order to be effective. This research focuses on examining a way to
automatically schedule instructions without the knowledge of the
scheduling constraints. We hypothesize that scheduling constraints are
observable via timing. Our approach is to find a good schedule by timing
sequences to find the one that executes the fastest. However, the amount
of time required to execute one instruction is so minute that in order
to detect small differences in timings, a timing system with very good
resolution is needed. We consider two timing mechanisms: the platform
independent getTimeOfDay
function and the hardware dependent
TICK
register on the UltraSPARC.
|