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