What is Reversible Computing?
Reversible computing is a model of computing where the computational process to some extent is time-reversible. In a model of computation that uses deterministic transitions from one state of the abstract machine to another, a necessary condition for reversibility is that the relation of the mapping from (nonzero-probability) states to their successors must be one-to-one. Reversible computing is a form of unconventional computing.
There are two types of reversible computing
- Physical Reversibility
- Logical Reversibility
Physical Reversibility is like an Adiabatic Process which doesn’t involve increase in entropy. To implement reversible computation, estimate its cost, and to judge its limits, it has to be formalized in terms of gate-level circuits. Which are logically reversible i.e. can be run backwards from outputs to inputs. Such logical reversible gates have to basically be reversible.
Automatski’s Reversible Computer v1996
Automatski’s Reversible Computer is a “Logically” Reversible Computer. It implements a set of Reversible Logic Gates. And its primary purpose is to extract computational benefits from running a computation backwards. This is different from Physical Reversibility which is more concerned about the minimum energy spend in circuits used in computers. Because that will allow us to create computers with millions of times lesser energy consumption that whats happens today. So basically Physical Reversibility is about “Computational Energy Efficiency” We are absolutely not bothered about that at this time at Automatski. We want to purely capitalize on the advantages of Logical Reversibility in Computation to solve some intractable problems.
Side note: Quantum Computing is also Reversible Computing.
Applications of “Logically” Reversible Computing
Reversible computation has a growing number of promising application areas such as …
- low power design,
- testing and verification,
- database recovery,
- discrete event simulation,
- reversible specification formalism,
- reversible programming languages,
- process algebras,
- quantum computation, etc.
This below is a very small reversible logic circuit. With its truth table showing the inputs and the output mappings. It can be executed both ways from the input to output and in reverse from the output to the input.
In the list of applications above, one application is highlighted in bold “coding/decoding” do you even know what that is and what it means?
Thats basically encryption/decryption aka Cryptography. And breaking Cryptography using Cryptanalysis. Till 1900’s the best approach to cracking cryptography was either side channel attacks or algebraic attacks. Since 2014 Automatski created the most powerful quantum computer in the world with billions of infinite precision qubits. Which became another way to crack cryptography. And now we are publicly announcing our Reversible Computer.
If you are not very technically inclined and want to understand with some examples. Here are some…
2 factors of a large number when multiplied give the large number. When run in reverse from the large number you get the 2 factors. Thats how we crack RSA-2048 Cryptography.
1 key and some data gets encrypted into a cipher text. Using a few examples of cipher text. We can run the same in reverse to extract the key. Thats called cracking AES Cryptography.
Plain text run through an algorithm gives a k-bit hash. When run backwards you break Hashing Algorithms.
Basically if there is 1-1 mapping between the inputs and outputs then there is nothing our reversible computer cannot do.
*** Not that we are too excited because we broke all cryptography in 1990’s in more than half a dozen ways. Its like been there done that.
The Programming Language
Our reversible computer doesn’t have a programming language. It basically has a very low level gate/circuit representation file format. So its like Quantum Computing in many ways at the lowest level. The circuit given in Figure 1 is basically generated from a problem definition and put into a text file (we don’t have a binary format yet). And the values of variables (input or output) are put into another data file. And the Reversible Computer is instructed to execute it in the forward direction or the reverse direction.
Scale Complexity & Speed
The Reversible Computer can execute circuits with billions of gates. And just like our Quantum Computer it works in O(N) complexity. And also it can be made to execute at wire speed by burning it on ASIC’s or FPGA’s.
Our Reversible Computer is Universal and can implement all logical and arithmetic operations.
The Reversible Gates used in our Reversible Computer Circuits are also Universal, in the sense that they can compute any permutation of mapping between inputs and outputs. (Efficiently in most cases) (Without using too many, just a handful temporary variables)
Yada! Yada! Yada!
Why didn’t we put it into production earlier? Why did we wait 24+ years?
Because we have lots of work in life and no money. We have 100+ millennium inventions and we have to focus on almost all of them and even more. Each one of them is worth billions if not trillions of dollars. Well, so…!!!
Where Can I Learn More?