Improving Quasi-Dynamic Schedules through Region Slip Ilie Savga PELAB, IDA

advertisement
Improving Quasi-Dynamic
Schedules through Region Slip
Ilie Savga
PELAB, IDA
Linkoping University
Dynamic vs. Static Scheduling
 Dynamic: schedule instructions continuously, based on
dynamically variant conditions
+ efficient utilization of execution resources
- extra hardware complexity
 Static: rely on the compiler, the scheduling function
being incorporated into code generation
+ requires relatively little hardware support
- susceptible to degradation in performance
A possible trade-off: quasy-dynamic approach
Quasy-dynamic Scheduling
 Aims to achieve the performance of a fully-dynamic
approach, while preserving the relative simplicity of
supporting hardware
 Adapts to phases in run-time behaviour by occasionally
(not continuously) regenerating and rescheduling of
regions
 Basically is a non-dynamic mechanism; hence, have the
same impediments as the static scheduling in achieving
efficient schedules
Fundamental Impediments to
Effective Static Scheduling
 Region boundaries
Intiutively, they form barriers across which instructions
cannot be moved from one region to another
 The decrease of instruction-level parallelism towards the
end of regions
Intiutively, the non-dynamic scheduler “knows” less
potentially parallel instructions comparing to the fulldynamic one
Together contribute up to 63% of the total number of
empty slots in the issue buffer
Region Slip - a concept for
improving non-dynamic scheduling
Possible solution: allow for overlapping of regions, thus
 softening the region boundaries
ready instructions can fill a previous region’s empty
issue slots
 increasing the instruction level parallelism
there are more available instructions in the combined
region
As the main consequence, there are fewer empty issue
slots in the buffer
Region slip is a concept of allowing one static region
schedule to overlap with another one
Region Slip - implementation
In implementation region slip is a microarchitectural
enhancement, with the most complex additional hardware
in inserting instructions into the issue queue.
 In the presented case, the issue buffer is FIFO and is as
wide as the number of functional units
 The restriction that all new instructions are written only to
the tail pointer of the buffer is removed by region slip.
 An instruction earliest possible issue slot is determined by
the later of
- its intra-region predecessor (maintain program order)
- its parents (maintain corectness across regions)
Issue Buffer without Region Slip
22
23
21 17 16 14 12 9
18
15 13 10
19
11
20
Issue Buffer with Region Slip
19 16 14 12
22
23
LOM
20
15 13 10
21
17
18
11
9
Evaluation results
The concept of region slip was applied to a low-level
dynamic optimization framework rePLay.
No significant constraints on resources were assumed to
exist to emphasize the relative benefits quiasi-dynamic
scheduling over a static one
The relative performance of quasi-dynamic scheduling vs.
unscheduled and fully-dynamic scheduled code without
and with region slip was assessed using benchmarks
Region slip was found to be capable of filling 24% of the
empty issue slots previously not filled by quasi-dynamic
scheduled machine, and increasing performance by 26%
Conclusions
 Quasi-dynamic scheduling allows for the performance
closed to a fully-dynamic approach, while maintaining
hardware remains significantly simplier.
 Its two main problems are region boundaries and the
decrease of the available ILP towards the end of the
regions
 By allowing regions to overlap, region slip alleviates
these problems and drastically improves the
performance in the most unconstrained scenario
Download