Advertisement

Delayed exceptions — Speculative execution of trapping instructions

  • M. Anton Ertl
  • Andreas Krall
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 786)

Abstract

Superscalar processors, which execute basic blocks sequentially, cannot use much instruction level parallelism. Speculative execution has been proposed to execute basic blocks in parallel. A pure software approach suffers from low performance, because exception-generating instructions cannot be executed speculatively. We propose delayed exceptions, a combination of hardware and compiler extensions that can provide high performance and correct exception handling in compiler-based speculative execution. Delayed exceptions exploit the fact that exceptions are rare. The compiler assumes the typical case (no exceptions), schedules the code accordingly, and inserts run-time checks and fix-up code that ensure correct execution when exceptions do happen.

Key words

instruction-level parallelism superscalar speculative execution exception software pipelining 

References

  1. [AL91]
    Andrew W. Appel and Kai Li. Virtual memory primitives for user programs. In ASPLOS-IV [ASP91], pages 96–107.Google Scholar
  2. [ASP91]
    Architectural Support for Programming Languages and Operating Systems (ASPLOS-IV), 1991.Google Scholar
  3. [ASP92]
    Architectural Support for Programming Languages and Operating Systems (ASPLOS-V), 1992.Google Scholar
  4. [BMH+93]
    Roger A. Bringman, Scott A. Mahlke, Richard E. Hank, John C. Gyllenhaal, and Wen-mei W. Hwu. Speculative execution exception recovery using writeback suppression. In 26th Annual International Symposium on Microarchitecture (MICRO-26), pages 214–223, 1993.Google Scholar
  5. [BYP+91]
    Michael Butler, Tse-Yu Yeh, Yale Patt, Mitch Alsup, Hunter Scales, and Michael Shebanow. Single instruction stream parallelism is greater than two. In ISCA-18 [ISC91], pages 276–286.Google Scholar
  6. [CMC+91]
    Pohua P. Chang, Scott A. Mahlke, William Y. Chen, Nancy J. Warter, and Wen-mei W. Hwu. IMPACT: An architectural framework for multiple-instruction-issue processors. In ISCA-18 [ISC91], pages 266–275.Google Scholar
  7. [EK92]
    M. Anton Ertl and Andreas Krall. Removing antidependences by repairing. Bericht TR 1851–1992–9, Institut für Computersprachen, Technische Universität Wien, 1992.Google Scholar
  8. [Ell85]
    John R. Ellis. Bulldog: A Compiler for VLIW Architectures. MIT Press, 1985.Google Scholar
  9. [Fis81]
    Joseph A. Fisher. Trace scheduling: A technique for global microcode compaction. IEEE Transactions on Computers, 30(7):478–490, July 1981.Google Scholar
  10. [HP87]
    Wen-mei Hwu and Yale N. Patt. Checkpoint repair for high-performance out-of-order execution machines. IEEE Transactions on Computers, 36(12):1496–1514, December 1987.Google Scholar
  11. [ISC91]
    The 18 th Annual International Symposium on Computer Architecture (ISCA), Toronto, 1991.Google Scholar
  12. [JW89]
    Norman P. Jouppi and David W. Wall. Available instruction-level parallelism for superscalar and superpipelined machines. In Architectural Support for Programming Languages and Operating Systems (ASPLOS-III), pages 272–282, 1989.Google Scholar
  13. [LW92]
    Monica S. Lam and Robert P. Wilson. Limits of control flow on parallelism. In The 19th Annual International Symposium on Computer Architecture (ISCA), pages 46–57, 1992.Google Scholar
  14. [MCH+92]
    Scott A. Mahlke, William Y. Chen, Wen-mei W. Hwu, B. Ramakrishna Rau, and Michael S. Schlansker. Sentinel scheduling for VLIW and superscalar processors. In ASPLOS-V [ASP92], pages 238–247.Google Scholar
  15. [NE89]
    Toshio Nakatani and Kemal Ebcioğlu. “Combining” as a compilation technique for VLIW architectures. In 22nd Annual International Workshop on Microprogramming and Microarchitecture (MICR0-22), pages 43–55, 1989.Google Scholar
  16. [Nic85]
    Alexandru Nicolau. Uniform parallelism exploitation in ordinary programs. In 1985 International Conference on Parallel Processing, pages 614–618, 1985.Google Scholar
  17. [Nic89]
    Alexandru Nicolau. Run-time disambiguation: Coping with statically unpre-dictable dependencies. IEEE Transactions on Computers, 38(5):663–678, May 1989.CrossRefGoogle Scholar
  18. [RG81]
    B. R. Rau and C. D. Glaeser. Some scheduling techgniques and an easily schedulable horizontal architecture for high performance scientific computing. In 14th Annual Microprogramming Workshop (MICRO-14), pages 183–198, 1981.Google Scholar
  19. [RL92]
    Anne Rogers and Kai Li. Software support for speculative loads. In ASPLOS-V [ASP92], pages 38–50.Google Scholar
  20. [SHL92]
    Michael D. Smith, Mark Horowitz, and Monica S. Lam. Efficient superscalar performance through boosting. In ASPLOS-V [ASP92], pages 248–259.Google Scholar
  21. [SLH90]
    Michael D. Smith, Monica S. Lam, and Mark A. Horowitz. Boosting beyond static scheduling in a superscalar processor. In The 17 th Annual International Symposium on Computer Architecture (ISCA), pages 344–354, 1990.Google Scholar
  22. [Smi92]
    Michael David Smith. Support for Speculative Execution in High-Performance Processors. PhD thesis, Stanford University, 1992.Google Scholar
  23. [Soh90]
    Gurindar S. Sohi. Instruction issue logic for high-performance, interruptable, multiple functional unit, pipelined processors. IEEE Transactions on Computers, 39(3):349–359, March 1990.CrossRefGoogle Scholar
  24. [SP88]
    James E. Smith and Andrew R. Pleszkun. Implementing precise interrupts in pipelined processors. IEEE Transactions on Computers, 37(5):562–573, May 1988.CrossRefGoogle Scholar
  25. [Tom67]
    R. M. Tomasulo. An efficient algorithm for exploiting multiple arithmetic units. IBM Journal of Research and Development, 11(1):25–33, 1967.Google Scholar
  26. [Wal91]
    David W. Wall. Limits of instruction-level parallelism. In ASPLOS-IV [ASP91], pages 176–188.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • M. Anton Ertl
    • 1
  • Andreas Krall
    • 1
  1. 1.Institut für ComputersprachenTechnische Universität WienWien

Personalised recommendations