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.
Chapter PDF
Similar content being viewed by others
References
Andrew W. Appel and Kai Li. Virtual memory primitives for user programs. In ASPLOS-IV [ASP91], pages 96–107.
Architectural Support for Programming Languages and Operating Systems (ASPLOS-IV), 1991.
Architectural Support for Programming Languages and Operating Systems (ASPLOS-V), 1992.
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.
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.
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.
M. Anton Ertl and Andreas Krall. Removing antidependences by repairing. Bericht TR 1851–1992–9, Institut für Computersprachen, Technische Universität Wien, 1992.
John R. Ellis. Bulldog: A Compiler for VLIW Architectures. MIT Press, 1985.
Joseph A. Fisher. Trace scheduling: A technique for global microcode compaction. IEEE Transactions on Computers, 30(7):478–490, July 1981.
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.
The 18 th Annual International Symposium on Computer Architecture (ISCA), Toronto, 1991.
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.
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.
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.
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.
Alexandru Nicolau. Uniform parallelism exploitation in ordinary programs. In 1985 International Conference on Parallel Processing, pages 614–618, 1985.
Alexandru Nicolau. Run-time disambiguation: Coping with statically unpre-dictable dependencies. IEEE Transactions on Computers, 38(5):663–678, May 1989.
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.
Anne Rogers and Kai Li. Software support for speculative loads. In ASPLOS-V [ASP92], pages 38–50.
Michael D. Smith, Mark Horowitz, and Monica S. Lam. Efficient superscalar performance through boosting. In ASPLOS-V [ASP92], pages 248–259.
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.
Michael David Smith. Support for Speculative Execution in High-Performance Processors. PhD thesis, Stanford University, 1992.
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.
James E. Smith and Andrew R. Pleszkun. Implementing precise interrupts in pipelined processors. IEEE Transactions on Computers, 37(5):562–573, May 1988.
R. M. Tomasulo. An efficient algorithm for exploiting multiple arithmetic units. IBM Journal of Research and Development, 11(1):25–33, 1967.
David W. Wall. Limits of instruction-level parallelism. In ASPLOS-IV [ASP91], pages 176–188.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ertl, M.A., Krall, A. (1994). Delayed exceptions — Speculative execution of trapping instructions. In: Fritzson, P.A. (eds) Compiler Construction. CC 1994. Lecture Notes in Computer Science, vol 786. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57877-3_11
Download citation
DOI: https://doi.org/10.1007/3-540-57877-3_11
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57877-2
Online ISBN: 978-3-540-48371-7
eBook Packages: Springer Book Archive