4

Is there a way to use persistent memory instead of the volatile ram so that the state is resumed on a power loss without resorting to a UPS? Alternatively, can RAM be battery backed so that you don't lose state on power loss? I know there would be problems with currently executing code, data in CPU cache, etc...

But do some approaches already exist?

[EDIT]: Wondering about possible approaches at the OS or hardware level to enable power loss state recovery.

1
  • Using a UPS is still the best way
    – Michael B.
    Jan 30, 2010 at 0:39

2 Answers 2

1

MRAM (Magnetoresistive Random Access Memory): See EverSpin; For general info see mram-info.com

MRAM with TAS (Thermal Assisted Switching): See Crocus Tech.

STT-MRAM (Spin Torque Transfer Magnetoresistive RAM): Check with Hynix, Samsung, IBM, etc.

3
  • That's what I was looking for on the hardware side of things. Its really interesting, and if the people that are working on it are right, it'll even be able to replace the CPU cache. Thanks techie007
    – brice
    Feb 3, 2010 at 0:15
  • So instead of a good old crash, we'll get an infinite loop.
    – mtone
    Feb 7, 2010 at 1:08
  • @mtone: Dunno what you mean. The gist here is that, if the power goes out, you don't loose what you were working on. Feb 7, 2010 at 2:02
0

This might sound like a slightly flippant answer, but you could use a laptop, which handily has a built-in battery backup. But I assume this is not suitable - perhaps you had a server in mind?

I suspect that maintaining the system state, even with an SSD, in virtual memory (in a way such that it can be meaningfully restored) would be a lot of effort, and the overall system performance would be dreadful.

2
  • :-) Laptop works! But the laptop battery is nothing but a miniaturized UPS. But we (well, smart guys in labs) are speeding up solid state memory by significant factors. (ssd ~ x0.1 RAM at the moment) And a day will come when the persistent storage speeds catch up with volatile. Even without the hypothetical future improvements, 350MB/s ram is still fast enough for tons of embedded applications. What I'm wondering is: who's working on devices that don't need a proper suspend sequence but can instead be unplugged with exactly the same resulting behaviour.
    – brice
    Jan 30, 2010 at 0:31
  • 2
    @brice So, are you looking for a solution for persistence on embedded devices? From experience with a microcontroller (TriCore 1796), executing code and reading constant data from non-volatile flash memory was approximately 2.5x slower than from internal RAM; writing data to suitable non-volatile memory would presumably be slower. In that particular case, the performance drop was so substantial that, to run the system in real-time, we had to copy all the code and constant data from flash to internal RAM at boot-time.
    – sblair
    Jan 30, 2010 at 1:15

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .