Skip to main content

Application of compiler-assisted rollback recovery to speculative execution repair

  • Hardware Architectures for Fault Tolerance
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 774))

Abstract

Speculative execution is a method to increase instruction level parallelism which can be exploited by both super-scalar and VLIW architectures. The key to a successful general speculation strategy is a repair mechanism to handle mispredicted branches and accurate reporting of exceptions for speculated instructions. Multiple instruction rollback is a technique developed for recovery from transient processor failures. This paper investigates the applicability of a recently developed compiler-assisted multiple instruction rollback scheme to aid in speculative execution repair. Extensions to the compiler-assisted scheme to support branch and exception repair are presented along with performance measurements across ten application programs. Our results indicate that techniques used in compiler-assisted rollback recovery are effective for handling branch and exception repair in support of speculative execution.

This research was supported in part by the National Aeronautics and Space Administration (NASA) under grant NASA NAG 1-613, in cooperation with the Illinois Computer Laboratory for Aerospace Systems and Software (ICLASS), and in part by the Department of the Navy and managed by the Office of the Chief of Naval Research under Contract N00014-91-J-1283.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R. P. Colwell, R. P. Nix, J. O'Donnell, D. B. Papworth, and P. K. Rodman, “A VLIW Architecture for a Trace Scheduling Compiler,” in Proc. 2nd Int. Conf. Architecture Support Programming Languages and Operating Syst., pp. 105–111, Oct. 1987.

    Google Scholar 

  2. J. C. Dehnert, P. Y. Hsu, and J. P. Bratt, “Overlapped Loop Support in the Cydra 5,” in Proc. 3rd Int. Conf. Architecture Support Programming Languages and Operating Syst., pp. 26–38, April 1989.

    Google Scholar 

  3. P. Chang, W. Chen, N. Warter, and W.-M. W. Hwu, “IMPACT: An Architecture Framework for Multiple-Instruction-Issue Processors,” in Proc. 18th Annu. Symp. Comput. Architecture, pp. 266–275, May 1991.

    Google Scholar 

  4. B. R. Rau and C. D. Glaeser, “Some Scheduling Techniques and an Easily Schedulable Horizontal Architecture for High Performance Scientific Computing,” in Proc. 20th Annu. Workshop Microprogramming Microarchitecture, pp. 183–198, Oct. 1981.

    Google Scholar 

  5. M. S. Lam, “Software Pipelining: An Effective Scheduling Technique for VLIW Machines,” in Proc. ACM SIGPLAN 1988 Conf. Programming Language Design Implementation, pp. 318–328, June 1988.

    Google Scholar 

  6. A. Aiken and A. Nicolau, “Optimal Loop Parallelization,” in Proc. ACM SIGPLAN 1988 Conf. Programming Language Design Implementation, pp. 308–317, June 1988.

    Google Scholar 

  7. J. A. Fisher, “Trace Scheduling: A Technique for Global Microcode Compaction,” IEEE Trans. Comput., vol. c-30, no. 7, pp. 478–490, July 1981.

    Google Scholar 

  8. M. D. Smith, M. S. Lam, and M. Horowitz, “Boosting Beyond Scalar Scheduling in a Superscalar Processor,” in Proc. 17th Annu. Symp. Comput. Architecture, pp. 344–354, May 1990.

    Google Scholar 

  9. S. A. Mahlke, W. Y. Chen, W.-M. W. Hwu, B. R. Rao, and M. S. Schlansker, “Sentinel Scheduling for VLIW and Superscalar Processors,” in Proc. 5th Int. Conf. Architecture Support Programming Languages and Operating Syst., pp. 238–247, Oct. 1992.

    Google Scholar 

  10. M. D. Smith, M. A. Horowitz, and M. S. Lam, “Efficient Superscalar Performance Through Boosting,” in Proc. 5th Int. Conf. Architecture Support Programming Languages and Operating Syst., pp. 248–259, Oct. 1992.

    Google Scholar 

  11. N. J. Alewine, S.-K. Chen, C.-C. J. Li, W. K. Fuchs, and W.-M. W. Hwu, “Branch Recovery with Compiler-Assisted Multiple Instruction Retry,” in Proc. 22th Int. Symp. Fault-Tolerant Comput., pp. 66–73, July 1992.

    Google Scholar 

  12. N. J. Alewine, Compiler-assisted Multiple Instruction Rollback Recovery using a Read Buffer. PhD thesis, Tech. Rep. CRHC-93-06, University of Illinois at Urbana-Champaign, 1993.

    Google Scholar 

  13. N. J. Alewine, S.-K. Chen, W. K. Fuchs, and W.-M. W. Hwu, “Compiler-assisted Multiple Instruction Rollback Recovery using a Read Buffer,” Tech. Rep. CRHC-93-11, Coordinated Science Laboratory, University of Illinois, May 1993.

    Google Scholar 

  14. J. E. Smith and A. R. Pleszkun, “Implementing Precise Interrupts in Pipelined Processors,” IEEE Trans. Comput., vol. 37, pp. 562–573, May 1988.

    Article  Google Scholar 

  15. Y. Tamir and M. Tremblay, “High-Performance Fault-Tolerant VLSI Systems Using Micro Rollback,” IEEE Trans. Comput., vol. 39, pp. 548–554, Apr. 1990.

    Article  Google Scholar 

  16. A. V. Aho, R. Sethi, and J. D. Ullman, Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.

    Google Scholar 

  17. M. Johnson, Superscalar Microprocessor Design. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1991.

    Google Scholar 

  18. C.-C. J. Li, S.-K. Chen, W. K. Fuchs, and W.-M. W. Hwu, “Compiler-Assisted Multiple Instruction Retry.” Manuscript, May 1991.

    Google Scholar 

  19. J. A. Bondy and U. Murty, Graph Theory with Applications. London, England: Macmillan Press Ltd., 1979.

    Google Scholar 

  20. J. L. Hennessy and D. A. Patterson, Computer Architecture: A Quantitative Approach. San Mateo, CA: Morgan Kaufmann Publishers, Inc., 1990.

    Google Scholar 

  21. J. K. Lee and A. J. Smith, “Branch Prediction Strategies and Branch Target Buffer Design,” Computer, vol. 17, no. 1, pp. 6–22, Jan. 1984.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Michel Banâtre Peter A. Lee

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Alewine, N.J., Fuchs, W.K., Hwu, Wm. (1994). Application of compiler-assisted rollback recovery to speculative execution repair. In: Banâtre, M., Lee, P.A. (eds) Hardware and Software Architectures for Fault Tolerance. Fault Tolerance 1993. Lecture Notes in Computer Science, vol 774. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0020022

Download citation

  • DOI: https://doi.org/10.1007/BFb0020022

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57767-6

  • Online ISBN: 978-3-540-48330-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics