DRAM, as you said, basically consists of a storage capacitor and a transistor to access the voltage stored on that capacitor. Ideally, the charge stored on that capacitor would never decrease, but there are leakage components that allow the charge to bleed off. If enough charge bleeds off the capacitor, then the data cannot be recovered. In normal operation, this loss of data is avoided by periodically refreshing the charge in the capacitor. This is why it is called Dynamic RAM.
Decreasing the temperature does a few things:
- It increases the threshold voltages of MOSFETs and the forward voltage drop of diodes.
- It decreases the leakage component of MOSFETs and diodes
- It improves the on-state performance of the MOSFETs
Considering that the first two points directly reduce the leakage current seen by the transistors, it should be less of a surprise that the charge stored in a DRAM bit can last long enough for a careful reboot process. Once power is reapplied, the internal DRAM system will maintain the stored values.
These basic premises can be applied to many different circuits, such as microcontrollers or even discrete circuits, as long as there isn't an initialization on start-up. Many microcontrollers, for example, will reset several registers on start-up, whether the previous contents were preserved or not. Large memory arrays are not likely to be initialized, but control registers are much more likely to have a reset on start-up function.
If you increase the temperature of the die hot enough, you can create the opposite effect, of having the charge decay so rapidly that the data is erased before the refresh cycle can maintain the data. However, this should not happen over the specified temperature range. Heating the memory hot enough for the data to decay faster than the refresh cycle could also cause the circuit to slow down to the point where it couldn't maintain the specified memory timings, which would appear as a different error.
This is not related to bit-rot. Bit-rot is either the physical degradation of storage media (CD, magnetic tapes, punch cards) or an event causing the memory to become corrupted, such as an ion impact.
Batteries don't rely on semicondutors, correct. They do, however, store energy chemically, and rely on chemical reactions to create electron flow.
Note that "last as long...in a cold environment" can be taken two ways--discharge duration under load or total useful life. I'm assuming that you meant time under load, as nearly all batteries benefit from an extended useful life if stored at low temperatures.
Most batteries (ignoring a few more exotic flavors) use two metallic or carbon electrodes, separated by an electrolyte. Current is produced by ion exchange (oxidation/reduction reaction) between the electrolyte and the anode and between the electrolyte and the cathode.
At reduced temperature, the internal impedance of the cell increases and the rate of ion exchange is reduced because the necessary chemical reactions progress more slowly. This causes more power to be dissipated in the cell rather than in the load, and also reduces the peak current available from the cell at low temperature. The cell doesn't last as long under load because less chemically stored energy can be converted to useful electrical energy.
This resource may be of interest.
Best Answer
I would suggest a lithium CR2032 battery. feel free to pick a large package or place a few in parallel.
Lithium Polymer will have lower capacity at lower temperatures.
However, to quote battery university,
As a side note, they often list 1mA as maximum current on one of these, but they can handle 10mA without much of a battery life loss(this will be worse at lower temps), pass 10mA and you will be killing batteries right and left.
Here is an example of a discharge curve based on temperature. It is the second page of the data-sheet. There is a clear decrease in life(~25%), but you should still be very able to use the battery. It looks like -20 degrees C is where you start to have large reductions.
Please let me know if there is anything I can add to make this more clear or more valuable to you.