CIS 4930.1194X/6930.1078X Spr.'00
Assignment #8 (Course Part VI, Weeks 11-12):
Reversibility in Computer Science

Please continue to follow the general advice on reading assignments from the first week's assignment.  Slides for this section's lectures will be placed on reserve when available.

Reading assignment:

The topic for these two weeks is on the computer-science implications of logical reversibility, which we have seen is needed both in order to maximize thermodynamic efficiency, and to avoid decoherence in quantum computing.

Irreversible-to-Reversible Interconversions (Lec. 30):(Slides in PDF.)

The following section of the course manuscript gives an overview of this subject:

This paper, which I've assigned before, informally describes the first embedding of irreversible machines into reversible ones, in section 3.  But this wasn't originally seen as useful because it accumulated "garbage" information which Landauer thought would still have to be eventually thermalized. Here is the first rigorous formal description of a irreversible-to-reversible embedding.  Lecerf's method uncomputes the garbage, but unfortunately also the computation's output. Bennett's early paper fixes that problem and resolves the issue.  This was the first complete irreversible-to-reversible embedding that actually does something useful. This next paper by Bennett gives a class of more space-efficient algorithms.  This is still the best simulation in terms of overall spacetime requirements; probably the best possible.  Levine and Sherman analyze it thoroughly. This paper shows that the time/space tradeoff in reversibility extends to the point where linear space is possible, but with exponential time. Minimum Overheads for Irreversible-Reversible Conversions (Lec. 31):

Progress towards proving the standing conjecture that no general-purpose simulation of irreversible machines by reversible ones can be more spacetime-efficient than Bennett's 1989 algorithm.

Reversible Computer Architectures (Lec. 32)

The following sections of the course manuscript describe the reversible RISC-style architecture we worked on at MIT, and general issues in reversible ISA design.

For comparison, here is the reversible cellular-automaton architecture we discussed earlier in the course. Here are the references to all of the other reversible computer architectures I know of.  I'll try to provide some of these papers online.  Temporarily, some of the readings from the Spring 2000 course reserve can be found here. Reversible Programming Languages (Lec. 33) Reversible Algorithms (Lec. 34) In addition to the above, Shor's article on his factoring algorithm from the week on quantum computation describes an efficient reversible algorithm for modular exponentiation.  This article by Vedral et al. describes some reversible arithmetic algorithms in more detail.

Written assignment #8: (due Mon. 4/10)

This is our standing written assignment.  It should be on the subject of the above lectures and reading material.