Reversible Computation and Freeing Memory

Discussions on everything related to the software, electronic, and mechanical components of information systems and instruments.

Reversible Computation and Freeing Memory

Postby MrMormon on September 24th, 2011, 1:30 am 

The promise of reversible computation is that one-to-one logic gates don't have a theoretical minimum amount of energy they have to expend, lowering heat generation and thus allowing more operations per second safely. The problem with one-to-one logic gates is that they quickly fill memory. What I was wondering is if reversible computers could be feasible if information that needed to be erased were 'transported' by a series of gates to a certain part of the computer. All heat from erasing memory would be generated in one place that could be designed for efficient heat exhaust and wouldn't introduce a ceiling on the highest safe operations per second.

What do you think?
MrMormon
 


Re: Reversible Computation and Freeing Memory

Postby kidjan on September 28th, 2011, 5:17 pm 

I think your description is generally wrong and/or misleading. Wikipedia has a much better summary for those interested.
User avatar
kidjan
Active Member
 
Posts: 1921
Joined: 25 Jul 2007
Location: Earth.


Re: Reversible Computation and Freeing Memory

Postby MrMormon on September 28th, 2011, 5:37 pm 

What am I wrong about? Wikipedia doesn't mention the problem of filling up memory with garbage bits, but that is a very real problem mentioned in other resources, and the article only seems to obscure the explanation with the focus on entropy.
MrMormon
 


Re: Reversible Computation and Freeing Memory

Postby kidjan on September 30th, 2011, 2:13 pm 

The problem with "one-to-one logic gates" isn't that they quickly fill memory, nor is reversible computing about "erasing memory." And wikipedia doesn't mention the "problem of filling up memory with garbage bits" because that's not a problem (in fact, if you're not using some memory--or taking the time to erase it--your computer would be noticeably slower and less efficient. It's not like unused volatile memory is somehow helping you out besides consuming electricity to maintain state). Also, I think the entire idea from a thermodynamic standpoint is highly questionable. It primarily seems to be the brainchild of a single researcher with no serious publications (i.e. peer reviewed) on the subject of "reversible computing."

And entropy is critical to this subject (as well as other subjects in CS); it doesn't obscure anything unless you aren't really serious in discussing computational science.

Show me these "other resources," please? If you're going to cite another "resource," at least take the effort to include a link or citation.
User avatar
kidjan
Active Member
 
Posts: 1921
Joined: 25 Jul 2007
Location: Earth.


Re: Reversible Computation and Freeing Memory

Postby MrMormon on September 30th, 2011, 2:20 pm 

You're suggesting that people with casual scientific interest are not allowed on these forums.

Imagine a reversible computer with initially empty memory. Now do an algorithm. You have garbage bits. What do you do with them before running another algorithm?

I think about reversible computation in terms of whether the gates on an individual basis must release heat because they don't preserve some information, not whether the system as a whole loses information. The gates themselves are what actually create or don't create heat; that makes much more sense to me, and that's why I said the focus on total entropy obscures the problem.
MrMormon
 


Re: Reversible Computation and Freeing Memory

Postby kidjan on October 1st, 2011, 11:47 am 

You're suggesting that people with casual scientific interest are not allowed on these forums.


I'm suggesting no such thing. I am suggesting that, per the forum guidelines ("Always be prepared to provide credible evidence for your claims; ideas don’t just 'fly' around here"), if you have some "resource" you're alluding to that you must post that resource. If your next posting doesn't contain some real information to actually support these stated beliefs, I'm locking this thread.

Imagine a reversible computer with initially empty memory. Now do an algorithm. You have garbage bits. What do you do with them before running another algorithm?


You absolutely do not erase them. In fact, this is a primary difference between debug and release builds when you program. If this is what you're insinuating, then you're flat-out wrong.

Debug builds (i.e. for developers to test and troubleshoot code) actually have very rigid ways they set memory before, during and after allocating and freeing memory. For example, here's how the C-runtime initializes memory in debug builds. Memory is set to specific patters during the allocation/free process to make it easier to troubleshoot corruption issues. But obviously this comes with a performance penalty.

Release builds, on the other hand, strip out all of these conveniences because obviously they're wasteful. So when you're done with an algorithm, and you have "garbage bits," it isn't automatically cleaned up for you when you're done. You can choose to manually do so, should you like, or you can simply overwrite the bits with your next data set, or you can do nothing with them at all. But no (good) programmer I know of would manually erase a chunk of memory just for good measure, because obviously that action isn't free.
User avatar
kidjan
Active Member
 
Posts: 1921
Joined: 25 Jul 2007
Location: Earth.


Re: Reversible Computation and Freeing Memory

Postby MrMormon on October 1st, 2011, 12:31 pm 

Okay, I'll "retract" what I said about Wikipedia not being the most comprehensive resource on reversible computation, but we can still talk about necessary implications.
kidjan wrote:
Imagine a reversible computer with initially empty memory. Now do an algorithm. You have garbage bits. What do you do with them before running another algorithm?
You absolutely do not erase them. In fact, this is a primary difference between debug and release builds when you program. If this is what you're insinuating, then you're flat-out wrong.
Release builds, on the other hand, strip out all of these conveniences because obviously they're wasteful. So when you're done with an algorithm, and you have "garbage bits," it isn't automatically cleaned up for you when you're done. You can choose to manually do so, should you like, or you can simply overwrite the bits with your next data set, or you can do nothing with them at all.
No reversible algorithm can overwrite data, so yes, it would have to be specifically done (with a separate irreversible mechanism). If previous data were preserved, the next algorithm would work improperly because it would be operating under the incorrect assumption that all of the memory it uses is filled with zeroes.
MrMormon
 


Re: Reversible Computation and Freeing Memory

Postby kidjan on October 2nd, 2011, 3:37 pm 

I never said or implied Wikipedia was the most comprehensive resource; stop pretending I'm making some argument I'm not. And I'm still waiting for these "other resources" you speak so highly of.

No, it would work fine because the memory is simply overwritten with new values.

Here's the wasteful way:
  1. Run an algorithm.
  2. Get results
  3. Zero out memory containing the reesults
  4. Populate memory with new values so you can run the algorithm again, overwriting zeros

Here's the not wasteful way:
  1. Run an algorithm.
  2. Get results
  3. Populate memory with new values so you can run the algorithm again, overwriting the old results
User avatar
kidjan
Active Member
 
Posts: 1921
Joined: 25 Jul 2007
Location: Earth.


Re: Reversible Computation and Freeing Memory

Postby MrMormon on October 3rd, 2011, 9:15 am 

Either way works. This conversation is going nowhere, though. You're also mocking me for referring to resources without the kind of etiquette you're used to. Please don't. I'd take that back because I don't care, but I can't edit it out.
MrMormon
 


Re: Reversible Computation and Freeing Memory

Postby kidjan on October 3rd, 2011, 3:58 pm 

Both ways work, but one is significantly slower.

I am not mocking you. And I would agree: you approached me with the wrong sort of etiquette for this forum. Look, this forum does not adhere to the sort of casual standards that you're attempting to apply to this conversation, and expect to be banned by a moderator far less understanding than myself if you continue arguing in the manner you just did (blatant refusal to provide citation is something we ban for all the time). And don't take this personally--this forum adheres to a higher standard, so in the future you should expect to be challenged like this.

Locking this thread. If you wish to continue this discussion, bring it up in the feedback forum.
User avatar
kidjan
Active Member
 
Posts: 1921
Joined: 25 Jul 2007
Location: Earth.



Return to Computers

Who is online

Users browsing this forum: No registered users and 3 guests