Skip to main content

Reversible Machine Code and Its Abstract Processor Architecture

  • Conference paper
Book cover Computer Science – Theory and Applications (CSR 2007)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4649))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Article  MATH  MathSciNet  Google Scholar 

  2. Bennett, C.H.: Logical reversibility of computation. IBM Journal of Research and Development 17(6), 525–532 (1973)

    Article  MATH  Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Article  MATH  MathSciNet  Google Scholar 

  5. Desoete, B., De Vos, A.: A reversible carry-look-ahead adder using control gates. Integration, the VLSI Journal 33(1), 89–104 (2002)

    Article  MATH  Google Scholar 

  6. 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)

    Google Scholar 

  7. Frank, M.P.: Reversibility for Efficient Computing. PhD thesis, MIT (1999)

    Google Scholar 

  8. Frank, M.P., Rixner, S.: Tick: A simple reversible processor (6.371 project report). Online term paper, MIT EECS Department (1996)

    Google Scholar 

  9. Fredkin, E., Toffoli, T.: Conservative logic. Intl. J. Theor. Phy. 21, 219–253 (1982)

    Article  MATH  MathSciNet  Google Scholar 

  10. 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)

    Google Scholar 

  11. Glück, R., Kawabe, M.: A method for automatic program inversion based on LR(0) parsing. Fundamenta Informaticae 66(4), 367–395 (2005)

    MATH  MathSciNet  Google Scholar 

  12. 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)

    Chapter  Google Scholar 

  13. Landauer, R.: Irreversibility and heat generation in the computing process. IBM Journal of Research and Development 5(3), 183–191 (1961)

    MathSciNet  MATH  Google Scholar 

  14. 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)

    Google Scholar 

  15. Reilly, E.D., Federighi, F.D.: On reversible subroutines and computers that run backwards. Communications of the ACM 8(9), 557–558 (1965)

    Article  Google Scholar 

  16. Vieri, C.J.: Reversible Computer Engineering and Architecture. PhD thesis, MIT (1999)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. Winskel, G.: The Formal Semantics of Programming Languages. MIT Press, Cambridge (1993)

    MATH  Google Scholar 

  19. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Volker Diekert Mikhail V. Volkov Andrei Voronkov

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics