This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Compiler-Based Multiple Instruction Retry
January 1995 (vol. 44 no. 1)
pp. 35-46

This paper describes a compiler-based approach to providing multiple instruction rollback capability for general purpose processor registers. The objective is achieved by having the compiler remove all forms of N-instruction antidependencies. Pseudoregister antidependencies are removed by loop protection, node splitting, and loop expansion techniques; machine register antidependencies are prevented by introducing antidependency constraints in the interference graph used by the register allocator. To support separate compilation, inter-procedural antidependency constraints are added to the code generator to guarantee the termination of machine register antidependencies across procedure boundaries. The algorithms have been implemented in the IMPACT C compiler. Experiments illustrating the effectiveness of this approach are described.

[1] M. L. Ciacelli,“Fault handling on the IBM 4341 processor,”inThe Eleventh Int. Symp. Fault-Tolerant Computing, pp. 9–12, June 1981.
[2] W. F. Bruckert and R. E. Josephson,“Designing reliability into the VAX 8600 system,”Digital Tech. J. Digital Equipment Corp., pp. 71–77, Aug. 1985.
[3] Y. Tamir and M. Tremblay,“High-performance fault-tolerant VLSI systems using micro rollback,”IEEE Trans. Comput., vol. 39, no. 4, pp. 548–554, 1990.
[4] M. S. Pittler, D. M. Powers, and D. L. Schnabel,“System development and technology aspects of the IBM 3081 processor complex,”IBM J. Res. Development, vol. 26, no. 1, pp. 2–11, 1982.
[5] R. N. Gustafson and F. J. Sparacio,“IBM 3081 processor unit: Design considerations and design process,”IBM J. Res. Development, vol. 26, no. 1, pp. 12–21, 1982.
[6] K.-L. Wu, W. K. Fuchs, and J. H. Patel,“Error recovery in shared memory multiprocessors using private caches,”IEEE Trans. Parallel Dist. Syst., vol. 1, pp. 231–240, Apr. 1990.
[7] W.W. Hwu and Y. Patt, “Checkpoint Repair for High Performance Out-of-Order Execution Machines,” IEEE Trans. Computers, vol. 36, no. 12, pp. 1496-1514, Dec. 1987.
[8] 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,”inThe Twenty-Second Int. Symp. Fault-Tolerant Comput., pp. 66–73, July 1992.
[9] D.A. Padua and M.J. Wolfe, "Advanced Compiler Optimizations for Supercomputers," Comm. ACM, vol. 29, Dec. 1986.
[10] A.V. Aho, R. Sethi, and J.D. Ullman, Compilers, Principles, Techniques and Tools.New York: Addison-Wesley, 1985.
[11] C.-C. J. Li and W. K. Fuchs,“CATCH-Compiler–Assisted Techniques for Checkpointing,”inThe Twentieth Int. Symp. Fault-Tolerant Computing, pp. 74–81, June 1990.
[12] C.-C. J. Li and W. K. Fuchs,“Maintaining scalable checkpoints on hypercubes,”inThe 1990 Int. Conf. Parallel Processing, pp. II.98–II.104, Aug. 1990.
[13] V. Balasubramanian and P. Banerjee,“Compiler-assisted synthesis of algorithm-based checking in multiprocessors,”IEEE Trans. Computers, vol. 39, no. 4, pp. 436–446, 1990.
[14] J.R. Ellis, Bulldog: A Compiler for VLIW Architectures.Cambridge, Mass.: MIT Press, 1986.
[15] G. J. Chaitin, M. A. Auslander, A. K. Chandra, J. Cocke, M. E. Hopkins, and P. W. Markstein,“Register allocation via coloring,”Computer Languages, vol. 6, no. 1, pp. 47–57, 1981.
[16] G. Chaitin, "Register Allocation and Spilling via Graph Coloring," Proc. SIGPLAN 82 Symp. Compiler Construction, ACM Press, Vol. 17, No. 6, June 1982, pp. 98-105.
[17] W.-M. W. Hwu and P. P. Chang,“Inline function expansion for compiling c programs,”inThe ACM SIGPLAN'89 Conf. Programming Language Design and Implementation, pp. 246–257, June 1989.
[18] J.R. Goodman and W.-C. Hsu, “Code Scheduling and Register Allocation in Large Basic Blocks,” Conf. Proc. 1988 Int'l Conf. Supercomputing, pp. 442-452, July 1988.
[19] C. L. Liu,Elements of Discrete Mathematics, second ed. New York: McGraw-Hill, 1985.
[20] N. Wirth, Systematic Programming: An Introduction, Prentice Hall, 1973. Also, N. Wirth,Algorithms + Data Structures = Programs,Prentice Hall, 1976.
[21] J. L. Hennessy and T. R. Gross,“Postpass code optimization of pipeline constraints,”ACM Trans. Programming Language and System, vol. 5, pp. 442–448, 1983.
[22] F. Chow and J.L. Hennessy,“Register allocation by priority-based coloring,” Proc. ACM SIGPLAN’84 Symp. Compiler Construction, pp. 222-232, 1984.
[23] M.R. Garey and D.S. Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness.New York: W.H. Freeman, 1979.

Index Terms:
rollback recovery, fault-tolerant computing, instruction retry, compilers
Citation:
Chung-Chi Jim Li, Shyh-Kwei Chen, W. Kent Fuchs, Wen-Mei W. Hwu, "Compiler-Based Multiple Instruction Retry," IEEE Transactions on Computers, vol. 44, no. 1, pp. 35-46, Jan. 1995, doi:10.1109/12.368011
Usage of this product signifies your acceptance of the Terms of Use.