A Reversible Processor, End to End

Every thread of this module now gets tied. We have adiabatic circuits that recover their charge, power clocks to feed them, and an instruction set whose every operation is invertible. The remaining question is the architect's: can you assemble these into a complete, working processor — ALU, registers, program counter, memory — with no destructive step anywhere in the datapath? The MIT Pendulum group answered by building one. This lesson walks the machine block by block, meets the two silicon case studies, and tallies the honest costs.

The datapath, block by block

Step through the diagram: each block of a conventional processor reappears, redesigned around exchange and in-place update. Every arrow is two-headed, because every path must carry traffic both ways — the same wires that compute the forward step must be able to uncompute it.

What each block gives up, and gets

Silicon proof and honest arithmetic

The MIT group carried this all the way to fabrication. The Pendulum processor implemented the PISA instruction set with a fully reversible datapath; its companion study Tick explored the same discipline in a conventionally-clocked implementation, separating the architectural questions from the adiabatic-circuit ones. Between them they showed the two claims this module has been building to: a reversible ISA can be implemented without hidden erasures, and the datapath tricks (exchange memory, paired branches, garbage stacks) work as real hardware, not just on whiteboards.

The honest costs, in round numbers: reversible programs need more instructions (an expanding/contracting pair where one destructive instruction sufficed), wider state (garbage in flight, come-from bookkeeping), and roughly a factor of ~2 in instruction count and datapath width for typical code — plus the speed the adiabatic substrate trades for its energy savings. Overheads are polynomial-mild, not exponential; the bet of the whole field is that as the energy ceiling tightens, a constant-factor tax will look cheap next to a 10^4-fold energy win.

Sit with what this machine can do that no ordinary computer can: press a button and the program runs backwards — actually backwards, the PC retreating, sums unsumming, swaps unswapping — because the current state uniquely determines the previous one, all the way to the start. Every debugger you have used fakes this with logs, snapshots and replays, burning memory to reconstruct a past the processor destroyed. A reversible processor never destroyed it. Crash at instruction one billion? Put the machine in reverse and drive back to the bug, inspecting any state on the way. The same trick powers speculative simulation (guess, explore, provably roll back) — a reminder that reversibility is not only a thermodynamic virtue; it is a feature.

A tempting shortcut: compile your program to PISA, run it on an ordinary CMOS core, collect the energy savings. You will collect nothing — in fact you'll pay the ~2× overhead tax for the privilege. On conventional hardware every register update still slams capacitors against a fixed rail at \tfrac{1}{2}CV^2 a switch, whether or not the operation was logically invertible. The stack only pays off end to end: reversible ISA so that the logic can be fully adiabatic, fully adiabatic circuits so that charge can be recovered, resonant power clocks so that the recovered charge is banked rather than burned. Remove any layer and the energy argument collapses to the floor below it. (Tick, run conventionally, was an architecture experiment — not an energy machine.) Logical reversibility is necessary for ultra-low-energy computing; it is nowhere near sufficient.