Compiler-Assisted Debugging and Multiple Instruction Retry.
Abstract
Backward execution requires the saving of historic information concurrently with the normal execution in order for a program to roll back. There are several applications for which backward execution is useful. In an environment where reliability is a concern, it may be necessary to roll back the program to a previously executed state in case of system faults. Multiple instruction retry is an alternative to checkpointing for recovery from a transient processor failure, especially when the error detection latency is only a few cycles. Speculative execution can achieve significant speed up for superscalar architectures by utilizing instruction retry to roll back the computation above mispredicted branches. Debugging is another field that can benefit from backward execution. Allowing the user to undo several instructions at specific positions may facilitate program debugging. This thesis describes schemes that have been implemented for multiple instruction retry for both RISC- type scalar processors, and very long instruction word (VLIW) architectures. The thesis also presents approaches that incorporate backward execution into a debugger, at both the compiler and the debugger levels.
Document Details
- Document Type
- Technical Report
- Publication Date
- Nov 01, 1994
- Accession Number
- ADA288995
Entities
People
- Shyh-kweh Chen
Organizations
- University of Illinois Urbana–Champaign