History cache: hardware support for reverse execution

  • Authors:
  • Rok Sosič

  • Affiliations:
  • School of Computing and Information Technology, Griffith University, Nathan, Queensland 4111, Australia

  • Venue:
  • ACM SIGARCH Computer Architecture News
  • Year:
  • 1994

Quantified Score

Hi-index 0.00

Visualization

Abstract

Reverse execution provides access to old states of an executing process. An application of reverse execution can be found in program debugging. When an error is detected, its cause is often hidden in the history of the process. In such situations, it is important to be able to recover and examine past states of the process. Numerous other applications of reverse execution are found in programming environments, in fault-tolerant computing and in speculative computation.Since processes are in general irreversible, the history must be saved in order to provide reverse execution. The main problem in dealing with the history is the amount of data generated. This paper describes a new approach to reverse execution based on a history cache which compacts the history. The performance of the history cache is measured on a simulator. The history cache can compact the history by more than an order of magnitude. Efficient support for reverse execution enables many new techniques such as a generic undo operation, a real-time checkpoint, and fast backtracking.