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."
Moore's Law is about device sizes and economics, not about energy use.
Yeah, this one was a bit of a brain burner. I actually had to RTFA to get a clue as well. Hopefully we get more of these articles. Wouldn't that be nice: tech-heavy stories on a tech-site...
I'm still going to point out some silliness in the article, mainly, this quote:
There’s not much time left to develop reversible machines, because progress in conventional semiconductor technology could grind to a halt soon. And if it does, the industry could stagnate, making forward progress that much more difficult. So the time is indeed ripe now to pursue this technology, as it will probably take at least a decade for reversible computers to become practical.
That seems like a stretch. As soon as we actually hit the wall, there's going to be a great incentive to push forward with alternative technology. In the meantime, the world is not going to collapse because we can't keep increasing our computational power at the same ridiculous rate. In fact, it might actually be nice to take a bit of a breather and just work at hardening and optimizing our existing infrastructure (hah!).
Rather, it sounds like a marketing pitch for more funding, and seem more than a little self-serving. Still, that's fine. I hope there remains some amount of funding for blue-sky projects like this and quantum computing. Even if it doesn't pan out as hoped, it's very likely we still learn valuable things.
Irony: Agile development has too much intertia to be abandoned now.
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
It is interesting, as a pure mathematician, to read:
"[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."
Now this 'can get back to earlier state' thing is basically the 'existence of inverses' axiom of group theory. A semigroup is a structure with a well-defined associative operator, but not necessarily an identity, nor existence of inverses. Now going from one computation state to the next, as a CPU does, is essentially a semigroup operation. Or at least something like that.
Reversible computing is effectively the faithful transformation of an abstract structure (e.g. rotating an icosahedron) on which the possible transformations form a group. Such a condition means that an unbounded number of operations can be chained without loss. This means the transformation must take zero energy. Thus, in fact, no change takes place. That means that what you think is a computation is, in fact, a fixed point that you're somehow conjuring into what appears to be a non-fixed computation. Interestingly, to me this stuff isn't new, nor even recent. What the ancient mystics, yogis and others obsessed over was this sort of aspect of reality.
Getting back to a less abstract point of view, the problem I see is that if these guys (and girls) insist on reinventing group theory the hard way, they won't even be able to catch up with where group theory was middle of last century. Indeed there is a dire need to more thoroughly think through what computation itself _actually is_. The 'Turing Machine+ChurchTuringThesis' thing is a half-decent first stab, but nothing more. The infinite tape, like the successor and infinity axioms of Peano Arithmetic and ZF Set Theory also, is akin to a naive C programmer assuming that malloc() will never fail. When you're knocking up a quick prototype, and you're not bothered if a malloc() failure crashes the program, fine. On the other hand, Linux kernel module authors seem to understand the need to use malloc() when it works, but never to trust it for critical duties, whether explicitly, or implicitly (via e.g. printf).