Abstract
A reversible abstract machine architecture and its reversible machine code are presented and formalized. For machine code to be reversible, both the underlying control logic and each instruction must be reversible. A general class of machine instruction sets was proven to be reversible, building on our concept of reversible updates. The presentation is abstract and can serve as a guideline for a family of reversible processor designs. By example, we illustrate programming principles for the abstract machine architecture formalized in this paper.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Abramov, S.M., Glück, R.: The universal resolving algorithm and its correctness: inverse computation in a functional language. Science of Computer Programming 43(2-3), 193–229 (2002)
Bennett, C.H.: Logical reversibility of computation. IBM Journal of Research and Development 17(6), 525–532 (1973)
Cezzar, R.: Design of a processor architecture capable of forward and reverse execution. In: Proceeding of IEEE SOUTHEASTCON 1991, vol. 2, pp. 885–890 (1991)
De Vos, A., Van Rentergem, Y., De Keyser, K.: The decomposition of an arbitrary reversible logic circuit. Journal of Physics A: Mathematical and General 39(18), 5015–5035 (2006)
Desoete, B., De Vos, A.: A reversible carry-look-ahead adder using control gates. Integration, the VLSI Journal 33(1), 89–104 (2002)
Feynman, R.P.: Reversible computation and the thermodynamics of computing (ch. 5). In: Feynman Lectures on Computation, pp. 137–184. Addison-Wesley, London, UK (1996)
Frank, M.P.: Reversibility for Efficient Computing. PhD thesis, MIT (1999)
Frank, M.P., Rixner, S.: Tick: A simple reversible processor (6.371 project report). Online term paper, MIT EECS Department (1996)
Fredkin, E., Toffoli, T.: Conservative logic. Intl. J. Theor. Phy. 21, 219–253 (1982)
Glück, R., Kawabe, M.: A program inverter for a functional language with equality and constructors. In: Ohori, A. (ed.) APLAS 2003. LNCS, vol. 2895, pp. 246–264. Springer, Heidelberg (2003)
Glück, R., Kawabe, M.: A method for automatic program inversion based on LR(0) parsing. Fundamenta Informaticae 66(4), 367–395 (2005)
Hall, J.S.: A reversible instruction set architecture and algorithms. In: Workshop on Physics and Computation. Proceedings, pp. 128–134. IEEE Press, New York (1994)
Landauer, R.: Irreversibility and heat generation in the computing process. IBM Journal of Research and Development 5(3), 183–191 (1961)
Mogensen, T.AE.: Semi-inversion of guarded equations. In: Glück, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 189–204. Springer, Heidelberg (2005)
Reilly, E.D., Federighi, F.D.: On reversible subroutines and computers that run backwards. Communications of the ACM 8(9), 557–558 (1965)
Vieri, C.J.: Reversible Computer Engineering and Architecture. PhD thesis, MIT (1999)
Vieri, C.J., Ammer, M.J., Frank, M.P., Magoulis, N., Knight, T.: A fully reversible asymptotically zero energy processor. In: Proceedings of the ISCA workshop (1998)
Winskel, G.: The Formal Semantics of Programming Languages. MIT Press, Cambridge (1993)
Yokoyama, T., Glück, R.: A reversible programming language and its invertible self-interpreter. In: Partial Evaluation and Program Manipulation. Proceedings, pp. 144–153. ACM Press, New York (2007)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Axelsen, H.B., Glück, R., Yokoyama, T. (2007). Reversible Machine Code and Its Abstract Processor Architecture. In: Diekert, V., Volkov, M.V., Voronkov, A. (eds) Computer Science – Theory and Applications. CSR 2007. Lecture Notes in Computer Science, vol 4649. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74510-5_9
Download citation
DOI: https://doi.org/10.1007/978-3-540-74510-5_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-74509-9
Online ISBN: 978-3-540-74510-5
eBook Packages: Computer ScienceComputer Science (R0)