Advertisement

Describing and Optimising Reversible Logic Using a Functional Language

  • Michael Kirkedal Thomsen
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7257)

Abstract

This paper presents the design of a language for the description and optimisation of reversible logic circuits. The language is a combinator-style functional language designed to be close to the reversible logical gate-level. The combinators include high-level constructs such as ripples, but also the recognisable inversion combinator f −1, which defines the inverse function of f using an efficient semantics.

It is important to ensure that all circuits descriptions are reversible, and furthermore we must require this to be done statically. This is ensured by the type system, which also allows the description of arbitrary sized circuits. The combination of the functional language and the restricted reversible model results in many arithmetic laws, which provide more possibilities for term rewriting and, thus, the opportunity for good optimisation.

Keywords

Reversible Logic Parallel Composition Functional Language Serial Composition Reversible Computation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Altenkirch, T., Grattage, J.: A functional quantum programming language. In: Proceedings of 20th Annual IEEE Symposium on Logic in Computer Science, LICS 2005, pp. 249–258. IEEE (2005)Google Scholar
  2. 2.
    Athas, W.C., Svensson, L.: Reversible logic issues in adiabatic CMOS. In: Workshop on Physics and Computation (1994)Google Scholar
  3. 3.
    Axelsen, H.B., Glück, R.: What Do Reversible Programs Compute? In: Hofmann, M. (ed.) FOSSACS 2011. LNCS, vol. 6604, pp. 42–56. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  4. 4.
    Axelsen, H.B., Glück, R., Yokoyama, T.: Reversible Machine Code and Its Abstract Processor Architecture. In: Diekert, V., Volkov, M.V., Voronkov, A. (eds.) CSR 2007. LNCS, vol. 4649, pp. 56–69. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  5. 5.
    Backus, J.: Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. Communications of the ACM 21, 613–641 (1978)Google Scholar
  6. 6.
    Barenco, A., Bennett, C.H., Cleve, R., DiVincenzo, D.P., Margolus, N., Shor, P., Sleator, T., Smolin, J.A., Weinfurter, H.: Elementary gates for quantum computation. Physical Review A 52(5), 3457–3467 (1995)CrossRefGoogle Scholar
  7. 7.
    Bennett, C.H.: Logical reversibility of computation. IBM Journal of Research and Development 17, 525–532 (1973)zbMATHCrossRefGoogle Scholar
  8. 8.
    Berut, A., Arakelyan, A., Petrosyan, A., Ciliberto, S., Dillenschneider, R., Lutz, E.: Experimental verification of landauer/’s principle linking information and thermodynamics. Nature 483(7388), 187–189 (2012)CrossRefGoogle Scholar
  9. 9.
    Brent, R., Kung, H.: A Regular Layout for Parallel Adders. IEEE Transactions on Computers C-31(3), 260–264 (1982)MathSciNetCrossRefGoogle Scholar
  10. 10.
    Burignat, S., Thomsen, M.K., Klimczak, M., Olczak, M., De Vos, A.: Interfacing Reversible Pass-Transistor CMOS Chips with Conventional Restoring CMOS Circuits. In: De Vos, A., Wille, R. (eds.) RC 2011. LNCS, vol. 7165, pp. 112–122. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  11. 11.
    Cuccaro, S.A., Draper, T.G., Kutin, S.A., Moulton, D.P.: A new quantum ripple-carry addition circuit. arXiv:quant-ph/0410184v1 (2005)Google Scholar
  12. 12.
    Cuykendall, R., Andersen, D.R.: Reversible optical computing circuits. Optics Letters 12(7), 542–544 (1987)CrossRefGoogle Scholar
  13. 13.
    Daubechies, I., Sweldens, W.: Factoring wavelet transforms into lifting steps. Journal of Fourier Analysis and Applications 4(3), 247–269 (1998)MathSciNetzbMATHCrossRefGoogle Scholar
  14. 14.
    De Vos, A.: Reversible computing. Progress in Quantum Electronics 23(1), 1–49 (1999)MathSciNetCrossRefGoogle Scholar
  15. 15.
    De Vos, A., Burignat, S., Thomsen, M.K.: Reversible implementation of a descrete integer linear transform. Journal of Multiple-Valued Logic and Soft Computing, Special Issue: Reversible Computation 18(1), 25–35 (2012)zbMATHGoogle Scholar
  16. 16.
    De Vos, A., Van Rentergem, Y.: Reversible computing: from mathematical group theory to electronical circuit experiment. In: Computing Frontiers Proceeding, pp. 35–44. ACM Press (2005)Google Scholar
  17. 17.
    Feynman, R.P.: Quantum mechanical computers. Optical News 11, 11–20 (1985)CrossRefGoogle Scholar
  18. 18.
    Fredkin, E., Toffoli, T.: Conservative logic. International Journal of Theoretical Physics 21(3-4), 219–253 (1982)MathSciNetzbMATHCrossRefGoogle Scholar
  19. 19.
    Gershenfeld, N.: Signal entropy and the thermodynamics of computation. IBM Systems Journal 35(3-4), 577–586 (1996)CrossRefGoogle Scholar
  20. 20.
    Koller, J.G., Athas, W.C.: Adiabatic switching, low energy computing, and the physics of storing and erasing information. In: Workshop on Physics and Computation, pp. 267–270 (1992)Google Scholar
  21. 21.
    Landauer, R.: Irreversibility and heat generation in the computing process. IBM Journal of Research and Development 5(3), 183–191 (1961)MathSciNetzbMATHCrossRefGoogle Scholar
  22. 22.
    Lutz, C.: Janus: A time-reversible language. A letter to R. Landauer (1986), http://tetsuo.jp/ref/janus.pdf
  23. 23.
    Malvar, H.S., Hallapuro, A., Karczewicz, M., Kerofsky, L.: Low-complexity transform and quantization in H. 264/AVC. IEEE Transactions on Circuits and Systems for Video Technology 13(7), 598–603 (2003)CrossRefGoogle Scholar
  24. 24.
    Merkle, R.C.: Reversible electronic logic using switches. Nanotechnology 4(1), 21–40 (1993)CrossRefGoogle Scholar
  25. 25.
    Morita, K.: A Simple Universal Logic Element and Cellular Automata for Reversible Computing. In: Margenstern, M., Rogozhin, Y. (eds.) MCU 2001. LNCS, vol. 2055, pp. 102–113. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  26. 26.
    Nielsen, M., Chuang, I.L.: Quantum Computation and Quantum Information. Cambridge University Press (2000)Google Scholar
  27. 27.
    Patra, P., Fussell, D.: On efficient adiabatic design of MOS circuits. In: Workshop on Physics and Computation, pp. 260–269 (1996)Google Scholar
  28. 28.
    Sheeran, M.: muFP, A language for VLSI design. In: Proceedings of the 1984 ACM Symposium on LISP and Functional Programming, LFP 1984, pp. 104–112. ACM (1984)Google Scholar
  29. 29.
    Sheeran, M.: Hardware design and functional programming: a perfect match. Journal of Universal Computer Science 11(7), 1135–1158 (2005)Google Scholar
  30. 30.
    Thomsen, M.K., Axelsen, H.B.: Parallelization of reversible ripple-carry adders. Parallel Processing Letters 19(1), 205–222 (2009)MathSciNetCrossRefGoogle Scholar
  31. 31.
    Thomsen, M.K., Glück, R., Axelsen, H.B.: Reversible arithmetic logic unit for quantum arithmetic. Journal of Physics A: Mathematical and Theoretical 43(38), 382002 (2010)MathSciNetCrossRefGoogle Scholar
  32. 32.
    Toffoli, T.: Reversible Computing. In: de Bakker, J.W., van Leeuwen, J. (eds.) ICALP 1980. LNCS, vol. 85, pp. 632–644. Springer, Heidelberg (1980)CrossRefGoogle Scholar
  33. 33.
    Vedral, V., Barenco, A., Ekert, A.: Quantum networks for elementary arithmetic operations. Physical Review A 54(1), 147–153 (1996)MathSciNetCrossRefGoogle Scholar
  34. 34.
    Wille, R., Drechsler, R.: Towards a Design Flow for Reversible Logic. Springer Science (2010)Google Scholar
  35. 35.
    Wille, R., Offermann, S., Drechsler, R.: SyReC: A programming language for synthesis of reversible circuits. In: Proceedings of the Forum on Specification & Design Languages, pp. 1–6. IET, Southhampton (2010)Google Scholar
  36. 36.
    Yokoyama, T., Axelsen, H.B., Glück, R.: Towards a Reversible Functional Language. In: De Vos, A., Wille, R. (eds.) RC 2011. LNCS, vol. 7165, pp. 14–29. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  37. 37.
    Yokoyama, T., Glück, R.: A reversible programming language and its invertible self-interpreter. In: Proceedings of Partial Evaluation and Program Manipulation, pp. 144–153. ACM Press (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Michael Kirkedal Thomsen
    • 1
  1. 1.DIKU, Department of Computer ScienceUniversity of CopenhagenDenmark

Personalised recommendations