Sentinel Scheduling with Recovery Blocks

This paper introduces a method for speculative execution, sentinel scheduling with recovery blocks, which is an improvement upon sentinel scheduling. This method is compared against speculative models that have been proposed previously. The hardware and compiler support needed for sentinel scheduling with recovery blocks is fully described. Quantitative results of speedup and code growth are presented for 14 benchmark programs. This method was fully implemented with the IMPACT compiler. Sentinel scheduling with recovery blocks is shown to have a low hardware cost, while achieving good performance results. Index terms speculative execution, sentinel scheduling, computer architecture, compilers, static scheduling, recovery blocks, instruction-level parallelism, potentially excepting instructions

[1]  Scott Mahlke,et al.  Exploiting Instruction Level Parallelism in the Presence of Conditional Branches , 1997 .

[2]  Mike Schlansker,et al.  Parallelization of loops with exits on pipelined architectures , 1990, Proceedings SUPERCOMPUTING '90.

[3]  Wen-mei W. Hwu,et al.  IMPACT: an architectural framework for multiple-instruction-issue processors , 1991, [1991] Proceedings. The 18th Annual International Symposium on Computer Architecture.

[4]  B. R. Rau,et al.  The Cydra 5 Departmental Supercomputer: design philosophies, decisions and trade-offs , 1989, [1989] Proceedings of the Twenty-Second Annual Hawaii International Conference on System Sciences. Volume 1: Architecture Track.

[5]  Michael D. Smith,et al.  Limits on multiple instruction issue , 1989, ASPLOS III.

[6]  Michael D. Smith,et al.  Efficient superscalar performance through boosting , 1992, ASPLOS V.

[7]  B. Ramakrishna Rau,et al.  Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing , 1981, MICRO 14.

[8]  Edward S. Davidson,et al.  Highly concurrent scalar processing , 1986, ISCA 1986.

[9]  Edward M. Riseman,et al.  The Inhibition of Potential Parallelism by Conditional Jumps , 1972, IEEE Transactions on Computers.

[10]  Michael D. Smith,et al.  Boosting beyond static scheduling in a superscalar processor , 1990, [1990] Proceedings. The 17th Annual International Symposium on Computer Architecture.

[11]  Scott Mahlke,et al.  Speculative execution exception recovery using write-back suppression , 1993, MICRO 1993.

[12]  Alexander Aiken,et al.  Optimal loop parallelization , 1988, PLDI '88.