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.
References
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.
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.
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.
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.
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.
A. Aiken and A. Nicolau, “Optimal Loop Parallelization,” in Proc. ACM SIGPLAN 1988 Conf. Programming Language Design Implementation, pp. 308–317, June 1988.
J. A. Fisher, “Trace Scheduling: A Technique for Global Microcode Compaction,” IEEE Trans. Comput., vol. c-30, no. 7, pp. 478–490, July 1981.
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.
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.
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.
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.
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.
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.
J. E. Smith and A. R. Pleszkun, “Implementing Precise Interrupts in Pipelined Processors,” IEEE Trans. Comput., vol. 37, pp. 562–573, May 1988.
Y. Tamir and M. Tremblay, “High-Performance Fault-Tolerant VLSI Systems Using Micro Rollback,” IEEE Trans. Comput., vol. 39, pp. 548–554, Apr. 1990.
A. V. Aho, R. Sethi, and J. D. Ullman, Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.
M. Johnson, Superscalar Microprocessor Design. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1991.
C.-C. J. Li, S.-K. Chen, W. K. Fuchs, and W.-M. W. Hwu, “Compiler-Assisted Multiple Instruction Retry.” Manuscript, May 1991.
J. A. Bondy and U. Murty, Graph Theory with Applications. London, England: Macmillan Press Ltd., 1979.
J. L. Hennessy and D. A. Patterson, Computer Architecture: A Quantitative Approach. San Mateo, CA: Morgan Kaufmann Publishers, Inc., 1990.
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.
Author information
Authors and Affiliations
Editor information
Rights 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