In order to check my understanding, I would like to share some thoughts about energy requirements of computation. This is a follow up to my previous question and might be related to Vinay's question about conservation laws.
It occourred to me that, from a thermodynamical point of view, running a computation can be considered, to some extent, analogue to moving a weight along an horizontal line: The only energy loss is due to frictional forces, which can be, in principle, made arbitrarly small.
In an ideal setting without dissipative forces (the mechanical analogue of a reversible computer), no energy expenditure is required at all. You still have to supply energy in order to accelerate the weight, but you can recover it all when decelerating it. The running time can be made arbitrarly small by investing enough energy (more precisely, if relativity is taken into account, running time is bounded from below by $d/c$, where $d$ is the distance).
Similarly, a reversible computer requires no energy expenditure but an energy investment that is recovered at the end of the computation, and running time can be made arbitrarly small by investing enough energy, up to relatvistic limits (as described in http://arxiv.org/abs/quant-ph/9908043 by Seth Lloyd).
There is, however, and energy cost associated with the construction of the computer. In general, this will depend on the implementation details, but I conjecture that we can state a lower bound for it:
Assume that our computer has three (classical or quantum) registers: Input, Output and Ancilla.
The Input and Output registers can be read and written to by the user, while the Ancilla register is inaccessible.
At the begining of each computation, the Ancilla register starts in a fixed (e.g. all zeros) state, and by the end of the computation it will have returned to the same fixed state. Thus, barring external noise, the Ancilla state needs to be initialized only once, when the computer is built.
Therefore, applying Landauer's principle, I conjecture that building a reversible computer with $n$ bits (or qubits) of Ancilla requires at least $n k_B T \ln2$ Joules of energy, where $k_B$ is the Boltzmann's constant and $T$ is the temperature of the environment where the system is being built.
Questions:
Are the above considerations correct?
What happens if a reversible computer is built in an evironment at temperature $T$ and then it is moved in an environment at temperature $T' < T$ ? I suppose that a truly reversible computer can't really be cooled. In principle, it should not even have a properly defined temperature, if I understand correctly.
What happens if we consider an irreversible computer? An irreversible computer can perform the same computations using in general less ancilla bits, moreover, since it thermally interacts with its environment, we could arrange so that the initial Ancilla state is part of the ground state, hence we can initialize it by simply allowing it to cool, without supplying any energy. Of course, being irreversible, we have to pay an energy cost for each computation.
(related to Kurt's answer to Vinay's question)
In the mechanical analogy, I considered only movement along an horizontal line. If the weight was also lifted in the vertical direction, an additional energy expenditure would have been required (or energy would have been recovered if the weight was lowered). Is there a computational analogue of this vertical movement, and is there a quantity that gets consumed or produced by this process?
UPDATE:
It occurred to me that the energy cost required to build the computer, can be recovered, in principle completely (I think), when you dismantle the computer.
So, for each computation, you could build a special-purpose reversible computer that has just as many ancilla bit as required, add additional energy to set it in motion, wait for the computation to complete, and then dismantle the computer recovering all the invested energy. Thus you could define the energy investment of the computation as: $n_s k_B T \ln2 + n_t s$ where $n_s$ is the actual space complexity (number of ancilla bits), $n_t$ is the actual time complexity (number of time steps) and $s$ is the energy vs speed tradeoff term per time step, assuming a constant total runtime.
Any thoughts?