100 likes | 212 Views
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
E N D
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 boundariesIntiutively, they form barriers across which instructions cannot be moved from one region to another • The decrease of instruction-level parallelism towards the end of regionsIntiutively, the non-dynamic scheduler “knows” less potentially parallel instructions comparing to the full-dynamic 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 boundariesready instructions can fill a previous region’s empty issue slots • increasing the instruction level parallelismthere 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)
Evaluationresults 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