Can We Surpass Moore's Law With Reversible Computing? (ieee.org)
"It's not about an undo button," writes Slashdot reader marcle, sharing an article by a senior member of the technical staff at Sandia National Laboratories who's studying advanced technologies for computation. "Just reading this story bends my mind." From IEEE Spectrum:
[F]or several decades now, we have known that it's possible in principle to carry out any desired computation without losing information -- that is, in such a way that the computation could always be reversed to recover its earlier state. This idea of reversible computing goes to the very heart of thermodynamics and information theory, and indeed it is the only possible way within the laws of physics that we might be able to keep improving the cost and energy efficiency of general-purpose computing far into the future...
Today's computers rely on erasing information all the time -- so much so that every single active logic gate in conventional designs destructively overwrites its previous output on every clock cycle, wasting the associated energy. A conventional computer is, essentially, an expensive electric heater that happens to perform a small amount of computation as a side effect...
[I]t's really hard to engineer a system that does something computationally interesting without inadvertently incurring a significant amount of entropy increase with each operation. But technology has improved, and the need to minimize energy use is now acute... In 2004 Krishna Natarajan (a student I was advising at the University of Florida) and I showed in detailed simulations that a new and simplified family of circuits for reversible computing called two-level adiabatic logic, or 2LAL, could dissipate as little as 1 eV of energy per transistor per cycle -- about 0.001 percent of the energy normally used by logic signals in that generation of CMOS. Still, a practical reversible computer has yet to be built using this or other approaches.
The article predicts "if we decide to blaze this new trail of reversible computing, we may continue to find ways to keep improving computation far into the future. Physics knows no upper limit on the amount of reversible computation that can be performed using a fixed amount of energy."
But it also predicts that "conventional semiconductor technology could grind to a halt soon. And if it does, the industry could stagnate... Even a quantum-computing breakthrough would only help to significantly speed up a few highly specialized classes of computations, not computing in general."
[I]t's really hard to engineer a system that does something computationally interesting without inadvertently incurring a significant amount of entropy increase with each operation. But technology has improved, and the need to minimize energy use is now acute... In 2004 Krishna Natarajan (a student I was advising at the University of Florida) and I showed in detailed simulations that a new and simplified family of circuits for reversible computing called two-level adiabatic logic, or 2LAL, could dissipate as little as 1 eV of energy per transistor per cycle -- about 0.001 percent of the energy normally used by logic signals in that generation of CMOS. Still, a practical reversible computer has yet to be built using this or other approaches.
The article predicts "if we decide to blaze this new trail of reversible computing, we may continue to find ways to keep improving computation far into the future. Physics knows no upper limit on the amount of reversible computation that can be performed using a fixed amount of energy."
But it also predicts that "conventional semiconductor technology could grind to a halt soon. And if it does, the industry could stagnate... Even a quantum-computing breakthrough would only help to significantly speed up a few highly specialized classes of computations, not computing in general."
This is something that calls for a proof of concept in the form of linear programming. Go ahead, show me the machine tree and its related Karnaugh maps and show this bi-directional computation performing several classic computing staples like stacks, sorts and finding primes in a manner that involves fewer steps.
Information has its limits, too, and laws somewhat similar to thermodynamics appear to govern these limits. If you have some linear function g(c(b(a))) that doesn't necessarily mean you can complete it as g(a,b,c) if c is dependent on b is dependent on a.
For instance, there are bi-directional programming languages but you still are forced to rethink your problem to be solved in a way that work toward the solution is still being done in reverse, and frankly I doubt that all real-world problems have a solution where time=t can be decremented. For starters if you need more than one output for a given input, you're kind of screwed for any linear task.
I have to agree with those who see this as a gag to win more funding. It's the equivalent of bringing again e.g. bidirectional programming over to the the hardware level, and go ahead and find me all the amazing examples of what you can do with bidirectional programming languages (go ahead, there are several and some are a number of years old).
"Stratigraphically the origin of agriculture and thermonuclear destruction will appear essentially simultaneous" -- Lee