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.
Moore's Law is very much about energy use. In fact, the ability to decrease transistor size is directly tied to the ability to control the energy these transistors consume.
When transistors get smaller they naturally consume less energy. But that's not enough. Significant effort is requires to ensure that they consume even less than that, especially when we're dealing with 22 nm and especially 14 nm processes.
Why is that? Electromagnetic interference.
When you're dealing at extraordinarily small scales like nanometers, the electromagnetic interfere between transistors and other components within a processor becomes a huge issue. Managing it becomes extraordinarily important for the successful operation of a processor.
If the cross-talk interference between adjacent transistors isn't strictly controlled then digital errors will be readily introduced, which prevents the computation from being possible. Digital circuits don't work properly when one transistor's state change causes electromagnetic interference that causes unwanted and unexpected state changes in these nearby transistors.
It's asinine to suggest that Moore's Law isn't related to energy use. EVERYTHING about microprocessor technology is related to 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).
Then when the industry picks back up again, there are fewer competitors. I have no idea how likely that all is though.
It's already happened. There are only three vendors of conventional processors for PCs, and one (Via) trails the others (you know) by a wide margin. There are loads of other vendors who only make embedded processors, even some who specialize in x86 and who used to make processors which went into the competition's motherboards. Now they make whole boards with their own chips and sell them for embedded use. But there used to be at least another handful of corporations which made processors which you could buy and stick into a socket on your PC motherboard.
And if we look beyond x86, we see more of the same. Oracle looks to be getting out of future SPARC development completely, leaving that to Fujitsu. How long will they be able to justify development of their own architecture? That leaves just IBM.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Passive logic predates active logic by many hundreds of years. However, although it theoretically requires less energy than active logic using the same technology*, it requires energy. As a result, after a few layers of passive logic (generally two) you require active logic to restore the noise margin. You then discover that the passive logic is slower because the losses in it, while small, are effectively series resistance, and what ever follows it is effectively a capacitance, however small. This is an RC delay circuit. The result is the more layers of passive logic, the slower the whole thing is. To make it go faster, you reduce the passive layers and increase the number of active stages.
There is another issue too - all the stray Rs and Cs are somewhat indeterminate in value (generally very temperature sensitive), so, in order to make sure everything is in sync, you use clocked logic, and to make it go faster, you keep the layers of logic between registers short (that is what pipelining does).
In short, in the real world there is a tradeoff between pumping power in to make it go faster, and not pumping power in, and having it go slow.
This was well known by 1970, and most probably known by all interested parties in 1941.
Anyone who thinks that logic requires data to be cleared before it is over-written, is still using core memories from the 1970's. No one clears the old result and then writes a new one. The new result overwrites the old one. Preferably with due allowance to avoid the data being used during the transition (requires clocking, requires active devices).
In short, unless I am completely wrong - in which case, much better written documents are required - the authors of the report have no clue at all.
* Passive logic as implemented in Victorian railway signalling requires at least a million times more energy per signal transition than (active) 1970's TTL.
Sent from my ASR33 using ASCII