'Reversible' Computers More Energy Efficient
James Clark writes "As Congress continues work on a federal energy bill, a group of University of Florida researchers is working to implement a radical idea for making computers more energy efficient -- as well as smaller and faster." Reversible computing rears its head again.
You get the most energy efficiency from a machine when it works in a thermodynamically reversible way, for instance the most efficient thermal motor possible is one that uses a Carnot cycle. Most real-world engines use different, less efficient cycles like the Otto or Stirling cycle because they yield higher speeds or torque.
Losing the ability to reverse computations means increasing entropy and thus lower efficiency. Interestingly, there is a whole class of functional programming methods that is intrinsically reversible (because evaluating expressions without side effects is reversible).
The best explanations of the issues involved is in Richard Feynman's "Lectures on Computation", that show how thermodynamics constrain what is ultimately possible with a computer.
I think you completely misunderstood the article, though in your defense it didn't do a very good job of explaining. The idea is not to be able to reverse logical operations -- that is of little value to anyone. Rather, they're trying to make the electrical changes (the energy transfer) reversible. That's a fundamentally differeent thing. A decent analogy, mentioned in the article is:
:)
The concept is somewhat analogous to hybrid cars now on the market that take the energy generated during braking and recycle it into electricity used to power the car.
So, the logical realm is no different here. Physically, and electrically, there is a big difference from existing computers. Now, when a bit changes from 1->0, the voltage (accumulated charge) is simply shorted to ground (via resistive path that dissipates heat). That energy is lost. In a reversible computer, that charge would be stored, in the electrical equivalent of a spring or flywheel in a mechanical system. So, next time it needs to go 0->1, the energy is sitting there, ready to be re-used(stored in the spring's compression or flywheel's rotation).
I assume these electrical "springs or flywheels" need to be phsycally close to the transistors they're storing energy for. If all transistor's storage were common, the heat loss (and time delay) to get the energy back to where it's needed would defeat the entire purpose.
In the article, they mention that current prototypes use oscillators to store the energy (which are more like a flywheel than a spring, to continue the mechanical analogy), but the efficiency is not quite good enough to be called "reversible". Too much energy is lost in storing and un-storing the energy. The current work is focused on improving the efficiency of storing and un-storing energy from state changes.
However, as a chip designer, I know that oscillators are usually (1) much much bigger than simple logic gates and (2) much more difficult to design with (it's analog design stuff, really). So, my concerns are (1) how much bigger will dice need to be to use this system (linear increase in die size equals exponential increase in manufacturing cost) and (2) how much longer is it going to take to close a design with all those little analog cells all over the place.
I don't even want to think about the implications for STA (static timing analysis) or LVS (layout versus schematic verification) -- it makes my head hurt.
everything in moderation
Enegy is lost always (leakage current) because the gate is not a perfect insulator. The smaller the gates, the more ther leakage. This is called static power.
Energy is also lost during switching, as the charge needed to switch is moved around. This is called dynamic power.
Reversible computing endeavors to reduce/eliminate dynamic power. It does nothing for static power. A long time ago, dynamic power was dominant and static power was negligble. Now, gates are so small, static power is approaching the same order of magnitude as dynamic.
So, even though they're only addressing about 1/2 of the problem, it would be great to have the magnitude of that big problem halved.
everything in moderation
This book by Richard Feynman is based on a series of lectures given at CalTech in the mid 1980s.
In it he discusses Reversible Computation and the Thermodynamics of Computing and quantum computing.
As usual, Feynman was way ahead of his time.
I highly recomend this book.
The basic idea is heat is only generated when information is destroyed. So don't destroy information when performing computations.
How this relates to something actualy practical is hard to say, but it didn't strike me as something that would apply to silicon very easily.
John
I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
Actually, you are wrong, in that the two things are very intimately related. I will assume that, as a chip designer, you are aware of what AND, OR, and NOT gates are, and that NAND is an example of a universal gate. NAND, however, is not reversible; you cannot in general determine the inputs by looking at the output.
The Fredkin Gate is an example of a reversible gate. As it happens, it is impossible to do reversible computing with two input gates. The Fredkin Gate (a controlled swap; two inputs, two outputs, and a control wire that passes through) has the property that it is
reversible (Fredkin inverts Fredkin), and
it has the same number of non-zero outputs as it does non-zero inputs.
To achieve reversible computing, you need reversible gates. Furthermore, with reversible gates, you can perform any computation with an arbitrarily small amount of energy; the catch is that you need more time (see adiabatic circuits, Carnot engines).