Advertisement

Speculative Execution and Compiler-Assisted Multiple Instruction Recovery

  • W. Kent Fuchs
  • Neal J. Alewine
  • Wen-mei Hwu
Part of the The Kluwer International Series in Engineering and Computer Science book series (SECS, volume 285)

Abstract

Multiple instruction rollback is a technique developed for recovery from transient processor failures. 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. This chapter describes compiler-assisted multiple instruction rollback schemes and their applicability to speculative execution repair. Performance measurements across ten application programs are presented. The results indicate that techniques used in compiler-assisted rollback recovery are effective for handling branch and exception repair in support of speculative execution.

Keywords

Register File Program Counter Speculative Execution Branch Prediction Branch Instruction 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    L. Spainhower, J. Isenberg, R. Chillarege, and J. Berding, “Design for Fault-Tolerance in System ES/9000 Model 900,” in Proc. 22th Int. Symp. Fault-Tolerant Comput., pp. 38–47, July 1992.Google Scholar
  2. [2]
    Y. Tamir and M. Tremblay, “High-Performance Fault-Tolerant VLSI Systems Using Micro Rollback,” IEEE Trans. Comput., vol. 39, pp. 548–554, Apr. 1990.Google Scholar
  3. [3]
    C.-C. J. Li, S.-K. Chen, W. K. Fuchs, and W.-M. W. Hwu, “Compiler-Assisted Multiple Instruction Retry,” IEEE Trans. Comput., To appear: 1994.Google Scholar
  4. [4]
    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
  5. [5]
    Y. Tamir, M. Liang, T. Lai, and M. Tremblay, “The UCLA Mirror Processor: A Building Block for Self-Checking Self-Repairing Computing Nodes,” in Proc. 21th Int. Symp. Fault-Tolerant Comput., pp. 178–185, June 1991.Google Scholar
  6. [6]
    J. E. Smith and A. R. Pleszkun, “Implementing Precise Interrupts in Pipelined Processors,” IEEE Trans. Comput., vol. 37, pp. 562–573, May 1988.Google Scholar
  7. [7]
    M. L. Ciacelli, “Fault Handling on the IBM 4341 Processor,” in Proc. IIth Int. Symp. Fault-Tolerant Comput., pp. 9–12, June 1981.Google Scholar
  8. [8]
    M. S. Pittler, D. M. Powers, and D. L. Schnabel, “System Development and Technology Aspects of the IBM 3081 Processor Complex,” IBM J. Res. Dev., vol. 26, pp. 2–11, Jan. 1982.Google Scholar
  9. [9]
    W. F. Brucken and R. E. Josephson, “Designing Reliability into the VAX 8600 System,” Digital Tech. J. Digital Equip. Corp., vol. 1, no. 1, pp. 71–77, Aug. 1985.Google Scholar
  10. [10]
    P. M. Kogge, K. T. Truong, D. A. Richard, and R. L. Schoenike, “Checkpoint Retry Mechanism.” United States Patent, no. 4912707, Mar. 1990. Assignee: International Business Machines Corporation, Armonk, N.Y.Google Scholar
  11. [11]
    G. L. Hicks, D. Howe, Jr., and A. Zurla, Jr., “Insruction Retry Mechanism for a Data Processing System.” United States Patent, no. 4044337, Aug. 1977. Assignee: International Business Machines Corporation, Armonk, N.Y.Google Scholar
  12. [12]
    D. B. Fite, T. Fossum, and D. Manley, “Design Strategy for the VAX 9000 System,” Digital Tech. J. Digital Equip. Corp., vol. 2, no. 4, pp. 13–24, Fall 1990.Google Scholar
  13. [13]
    E. B. Eichelberger and T. W. Williams, “A Logic Design Structure for LSI Testability,” in Proc. 14th Design Autom. Conf., pp. 462–468, 1977.Google Scholar
  14. [14]
    J. S. Liptay, “The ES/9000 High End Processor Design,” IBM J. Res. Dev., vol. 36, no. 3, May 1992.Google Scholar
  15. [15]
    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
  16. [16]
    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
  17. [17]
    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
  18. [18]
    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
  19. [19]
    M. S. Lam, “Software Pipelining: An Effective Scheduling Technique for VLIW Machines,” in Proc. ACM S1GPLAN 1988 Conf. Programming Language Design Implementation, pp. 318–328, June 1988.Google Scholar
  20. [20]
    A. Aiken and A. Nicolau, “Optimal Loop Parallelization,” in Proc. ACM S1GPLAN 1988 Conf. Programming Language Design Implementation, pp. 308–317, June 1988.Google Scholar
  21. [21]
    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
  22. [22]
    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
  23. [23]
    S. A. Mahike, 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
  24. [24]
    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
  25. [25]
    N. J. Alewine, W. K. Fuchs, and W.-M. Hwu, “Application of Compiler-Assisted Rollback Recovery to Speculative Execution Repair,” in Hardware and Software Architectures for Fault Tolerance, (New York), Springer-Verlag, 1994.Google Scholar
  26. [26]
    C.-C. J. Li, S.-K. Chen, W. K. Fuchs, and W.-M. W. Hwu, “Compiler-Assisted Multiple Instruction Retry,” Tech. Rep. CRHC-91-31, Coordinated Science Laboratory, University of Illinois, May 1991.Google Scholar
  27. [27]
    A. V. Aho, R. Sethi, and J. D. Ullman, Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.Google Scholar
  28. [28]
    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. CRHC93-11, Coordinated Science Laboratory, University of Illinois, May 1993.Google Scholar
  29. [29]
    M. Johnson, Superscalar Microprocessor Design. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1991.Google Scholar
  30. [30]
    J. A. Bondy and U. Murty, Graph Theory with Applications. London, England: Macmillan Press Ltd., 1979.Google Scholar
  31. [31]
    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

Copyright information

© Kluwer Academic Publishers 1994

Authors and Affiliations

  • W. Kent Fuchs
    • 1
  • Neal J. Alewine
    • 2
  • Wen-mei Hwu
    • 1
  1. 1.Coordinated Science LaboratoryUniversity of IllinoisUrbana
  2. 2.International Business MachinesBoca Raton

Personalised recommendations