MRAM Inches Towards Prime Time
levin writes "According to an article over at EETimes, magnetoresistive RAM chips are getting a little more practical. Infineon Technologies released info on a new 16M MRAM component on Tuesday and the read and write cycle times of this chip make it 'competitive with established DRAM.' How long before nonvolatile memory becomes the solution to crash-prone software rather than better programming?"
Last time I checked, most of the software crashes aren't caused by memory randomly disappearing.
How long before nonvolatile memory becomes the solution to crash-prone software rather than better programming?
Probably very long......
There are very little volatile-memory related software bugs.....
HINT: You don't want your ram back in the same corrupt state it was in before the reboot.
Jeroen
Secure messaging: http://quickmsg.vreeken.net/
That being said, imagine the power savings and lightning fast startup times! I'd love an "instant on" PC! ( or, erm...Mac
CAn'T CompreHend SARcaSm?
Looks cool for applications such as hibernate.
Someone explain to me how MRAM will help with stability if it is simply replacing the same type of functionality that good old fashioned RAM has.
My sig is blank, I typed this by hand.
How is nonvolatile RAM supposed to prevent crashes? Crashes are the result of unexpected program interaction, hardware incompatibilty, or poorly-anticipated user input.
"How long before nonvolatile memory becomes the solution to crash-prone software rather than better programming?"
Never. Having the same bits in memory after a reboot doesn't help if you wrote the wrong bits in the first place.
"On two occasions I have been asked, 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."
~Lake
Non-volatile main memory is unlikely to be a solution against crash-prone software. If the software crashed because there was a bug in how it handled the data in memory, if the data is still there and the application reads it again, it'll just crash in exactly the same place.
In any case, an application crashing very seldom causes the machine to actually power down, and an application crashing and being restarted never gets to use the same memory the same way anyway, so the point is entirely moot. If your main memory is nonvolatile RAM, the advantage is you can design a system that can be powered down and suspended without having all that lengthy write of the entire machine's state to disk (and read when it comes back up again), which would be extremely useful on a laptop. If you can do this, you can have essentially uptime of years, so the incentive would be to write MORE stable operating systems and applications if the expectation is that even a laptop may go years between reboots.
Oolite: Elite-like game. For Mac, Linux and Windows
How long before nonvolatile memory becomes the solution to crash-prone software rather than better programming?
What? A crash-prone program is a crash-prone program, regardless of whether it vanishes or not when you turn the power off.
How long before nonvolatile memory becomes the solution to crash-prone software rather than better programming?
Good, now I'll be able to preserve memory corruption even after a power-cycle! Last time I checked, software crashes weren't due to the fact that DRAM loses its contents when powered down.
For main memory on a pc, not much, unless of course it's a tiny chip and you put at least 16 on a card the size of current ram dimms.
However it seems to me somthing like this on a hard-drive with a journaling file system properly built to use it, could have some use.
Heck most hard drives today only have 8MB for cache as it is.
Mycroft
https://signup.leagueoflegends.com/?ref=4c3ed6600b6ea
If your operating system has crashed, it has crashed. You need to reboot it. MRAM cannot change that. The point is that with MRAM you should be able to switch off your computer and switch it on again later without reboot and without need to save RAM contents to disk at power-down and to retore them from disk after the system is switched on again.
Hence if anything, this technology will increase pressure on operating system vendors to produce OSes which don't crash badly enough to require a reboot.
Under construction: swpat politics overview article
Once step closer to replacing HDD, CDROM, DVD and all those other "moving parts" storage devices.
In 20 years, we'll all be looking back at DVD and CDROM like we do at Tape Cassette.
Moving parts and things that go whirr make me cringe.
I just want to plug it in and get instant access.
"How long before nonvolatile memory becomes the solution to crash-prone software rather than better programming?"
Hello. What do you think -hard disks- are?
I'll give you 5 seconds to come up with a list of operating system 'features' that have been 'standardized' which really resulted from this 'ideology' about how to not write 'safe' code and just let other parts of the system 'deal with it'
Give up? Okay, I'll give you a few:
1. Swap. Yup, if the program has no idea how much RAM it has or needs, and no idea how to manage it, and the programmer just wants it all
2. "Protected Memory". Yup. Same deal. Let the OS deal with 'bad programming'.
Non-volatile memory has nothing to do with 'protecting from bad programming' and everything to do with writing 'true' persistent state machines... just like these two 'features'.
In summary: If it wasn't for 'bad programming', operating systems wouldn't have anything to do
Flame on.
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
Is not the main point of non-volatile memory. The two main advantages are significatly less power consumption (only put energy into it, when you want to change the sate, not on every single cycle) and having permanent storage at the speed of System Memory (may I see the time coming, when there will be no seperate permanent storage devices, like hds and all this periphery, with all the bus technology and other error prone parts?...It's a long shot, but this is an important first step)
Just because I can imagine doing a hippopotamus, doesn't mean I'd like to do it.
... to the "immediately on" computer. Boot times reduced to next to nothing will be prove to be a giant leap in the usability of computers, I think.
"It usualy starts with some screaming. Afterwards there is much running around."
Gak, didn't read close enough, it's only 18Mb(2MB). Still as aid for aware journaling filesystems it could be good, it's 30-40ns speed is fast enough for hard drive caching.
What I'd really like to see is memory fast enough to not need clock multipliers on the cpu's, or perhaps a memory controller that spans enough modules to achieve the same effect. Unfortunately the added complexity would probably be a major pita, or require serious re-design of memory sub-systems.
Mycroft
https://signup.leagueoflegends.com/?ref=4c3ed6600b6ea
Wouldn't non-volatile RAM actually make programmers more attentive?
/proc ?) like any other file. Then, determining which program was leaking ram could be done with a simple `ls -la`.
One of the most common programming errors is a memory-leak. Can you imagine what would happen if you couln't reboot the Windows machine to clear the memory for another few days?
Non-volatile RAM may be the best excuse yet to switch to something more, ah... tightly coded!
That said, I think that the current memory/disk model of computing is antiquated. Why distinguish memory from disk? Why not treat it all the same?
A HDD is the base storage medium. RAM is a cache of that. L2 cache is a cache of RAM. L1 cache caches L2 cache.
Why the distinction from HDD to memory? Instead of allocating RAM directly, why not follow the *nix philosophy of "everything is a file" and if you want a storage space for some temp values, open a file and write them in.
The memory allocated for a particular process would then appear as a file (perhaps buried somewhere in
Instead of flushing to special swap partitions, the memory files would simply be committed to disk when you run out of RAM. (moved down the cache chain from RAM to disk)
Switching to a fundamentally different type of memory may be the right time to reconsider system architectures and challenge our conventional assumptions of computing, especially since memory leaks can be so severe, even in commercial software!
I have no problem with your religion until you decide it's reason to deprive others of the truth.
Programs don't crash because the memory is cleared during reboots. They crash because they refer to memory that never existed in the first place.
Perhaps nonvolatile memory will improve startup times (think super-fast hibernate) but crashes? Not a chance.
For main memory or video memory, yeah, not so much at first glimpse. The "nonvolatile" portion is where it gets sexy. The primary reason static RAM isn't widely implemented for ALL memory right now is simply cost. Dynamic RAM's volatile nature forces the CPU or a memory controller to take time to read and write the contents of each portion of memory repeatedly thousands of time per second, else the contents of the memory are lost. Not having to do that would be a huge work saver for future hardware, allowing it to focus on any problems at hand. Very cool stuff.
"It is a solemn thought: dead, the noblest man's meat is inferior to pork."
The real future is in ENRAM. Give it all your money and then it crashes !
A Multiplayer Strategy Game for Mac OS X, Windows, and Linux
At least now, when your Windows crashes, you can reboot your machine, and in extreme cases powercycle it.
However, with such non-volatile RAM, this is a thing of the past: even leaving the machine unpowered for an hour won't erase the crashed program state...
Yay! We're going to get instant-on computers, just like home computers in the '80s were. How are we going to achieve it? Some form of jumped-up magnetic core memory!
In soviet russia stale jokes recycle you!
If the big advantage of non-volatile RAM is the reduction in how many times you have to wait for your PC to perform a full startup and shutdown the last thing you want to have is your software being so crap that you have to reboot it all the time anyway.
You see, there are perfectly good reasons to tunr a computer off, regardless of whether it's running Linux or Windows or Solaris or MacOS X. And then you'll want it to start as quickly as possible when you want it back on.
Laptops are the prime example. You don't want it on all the time, when you don't need it. You want to still have some juice in the battery when you do need it. You'll also want it up and running as fast as possible when you do need it.
Dunno about you, but I'd rather just start using it, instead of sitting and watching through 5 minutes of Linux loading everything _and_ the kitchen sink at startup, then loading KDE, then taking ages to start Open Office, etc. If MRAM lets me have it up and ready in 1 second, I'm all for it.
E.g., there are computers in a lot of gadgets. Take my CD-based MP3 player, for example. Whenever I power it up, it takes a couple of seconds to basically boot and read the track list. If all that could stay in MRAM, and have it start playing the millisecond I hit that button, it would be a much more convenient gadget.
And even with regular PCs, you have to understand that some people actually _use_ their PC. They don't just keep them for a retarded "my uptime can beat yours" contest. And, like any other tool, there are perfectly good reasons to turn it off when you're not using it any more.
If nothing else, for the noise. Now this computer is a lot more silent since I replaced the fans with 12 dBA ones, and got Seagate drives. But all else being equal, I'd still _not_ have an extra source of noise near my bed when I'm trying to sleep.
For a lot of people the electricity bill is a factor too. Yes, it's not a small fortune, but for a lot of people it matters. And it's still paying money for something they don't need. They're getting exactly zero use out of that computer running all night, so why would that be on their electricity bill?
Basically all I'm saying is: next time make sure brains are engaged, before jumping in with the standard knee-jerk "Microsoft sucks" post. Yes, I know. It gives retards the impression of belonging to some big sad community. Makes you sooo cool if you're whining about Microsoft too.
But sometimes it still can't hurt to pull your head out of your ass. There _are_ uses for some stuff (e.g., the MRAM we're talking about here) that aren't a Windows-vs-Linux thing at all. They're just as useful for either.
Of course, that would mean actually thinking and actually doing a real analysis, instead of just reaching for the fashionable dogma. But I'm sure you'll get the hang of that, eventually.
A polar bear is a cartesian bear after a coordinate transform.
Read the whole article my friend. While 2 MBytes may not be much it is plenty for many embedded applications, plus its fabed in .18 Micron CMOS which means the .13 Micron versions probably have 8 Mbytes, and it only uses 3 metal layers, which in an age of 8 metal layer chips should mean good yeilds which means low costs. It seems to use a fairly standard CMOS process which means it will be able to leverage all the general CMOS improvements. It uses less operating power than DRAM, has faster cycle times than FLASH and being magnetic, I am guessing is non-volatile. Plus this isn't a commerical product yet, they said clearly they still have a long way to go in reducing size before then. All in all it actually sounds pretty good. I look forward to the day when all memory is non-volatile, I think we will find that it will change the way we design and look at products.
However, there are 8 to 16 chips on a DIMM. So, multiply by 8 to get 16MB for a single-sided DIMM, or 16 to get 32MB for a double-sided DIMM. Not good, but for a new memory type, it's catching up quick.
There are very little volatile-memory related software bugs.....
Oh, are you SURE about that? You should research such statements first, my friend, rather than assuming.
Take a look at this review from last year of power supplies by Anandtech.
They ran a six-hour memory test 54 times--and found that with 512MB of RAM, after each six hour test there were an average of four bits that had flipped! That means there is a memory error on a 512MB PC--on average--every 90 minutes!
If that error occurs in a code segment in a driver, you may get a system crash. In a Windows DLL, perhaps some system instability. In an application, perhaps an application crash. If it's in a data segment, your important manuscript may suddenly lose a paragraph or skip a couple pages as a linked list pointer jumps to the wrong spot, or you may find a bunch of junk replacing normal text.
Memory errors are a serious problem that very few people acknowledge. Why people still buy non-ECC RAM is beyond me. (Of course, even with ECC RAM, there are still various places inside the PC where failure can occur--along the various buses for exmaple, which don't all have ECC. So this is only part of the solution.)
More reliable RAM would definitely be a step in the right direction.
The magnetoresistive cell can change the way ANY sequential logic circuit operates. It can make much denser CPUs, ASICs and FPGAs, because now you can make the clock input be THE power supply line.
... well, longer.
It can also make your timepiece battery last
You just need to look at it in a different view then Yet Another Non-PowerCycle-Erasable Storage.
Now one thing Novell is not is stupid. They refused.
Somehow, the story of the challenge got around the exhibition floor, and a crowd assembled. Perhaps it was gremlins. Never eager to pass up an opportunity, the keykos staff happily spent the next hour kicking their plug out of the wall. Each time, the system would come back within 30 seconds (15 of which were spent in the bios prom, which was embarassing, but not really key logic's fault). Each time key logic did this, more of the audience would give novell a dubious look.
Eventually, the novell folks couldn't take it anymore, and gritting their teeth they carefully turned the power off on their machine, hoping that nothing would go wrong. As you might expect, the machine successfully stopped running. Very reliable.
Having successfully stopped their machine, novell crossed their fingers and turned the machine back on. 40 minutes later, they were still checking their file systems. Not a single useful program had been started.
Figuring they probably had made their point, and not wanting to cause undeserved embarassment, the keykos folks stopped pulling the plug after five or six recoveries.
Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
You know, the core memory of "way back when" was also magnetic, and nonvolitile. Actually, it was destructive-on-read, so you only had to refresh a bit it when reading it. Otherwise, you could turn the machine off and it would keep its contents.
(No, I'm not that old. But I had some friends in college who played around with an old PDP-11/45 we found, which used core.)
Err, then the PC and ram Anandtech have been using are dodgy.
Due to the design of Dynamic RAM chips, memory bit flip errors are not influenced by how long the memory sits "idle". I emphise idle here because Dynamic ram is never really idle. Each cell in a DRAM chip contains a capacitor and a transistor. If a DRAM cell is left to its own devices, the capacitor soon discarges and the cell looses its state. To stop this from happening, in the background, the RAM controller on the chip is constantly recharging the capacitors. Each cell is read and rewritten about every few milliseconds.
Because DRAM chips are never idle, the whole methodolgy of the anandtech test is WRONG, and the most obvious conclusion is that anandtech is using dodgy ram, or is simply pushing the RAM beyond their specs to forcibly generate errors.
Perhaps I'm being too paranoid, but I see some potential for abuse here. Imagine a program that deals with passwords or credit card numbers... They could be still lying around in your non-volatile memory after the machine is switched off.
An intelligent program should then zero out those passwords before freeing memory. Even so, would this kind of storage suffer from the security issue already discussed here and here (ability to retrieve data from many previous writes)?
Score: i, Imaginary
And how exactly is one expected to code against this?
It's not difficult.
Just add ECC in software.
I've done this before in some of the software I've written for hospitals and banks; it's been a design requirement for the software to detect when there is a failure, and to correct if possible.
And, yes, failures ARE detected, AND corrected.
The way it works is you divide memory up into blocks (for example, 512 bytes of 1KB). You do this for both your data and code. For each memory block, store the ECC data (usually, in a separate area of memory, so it's non-intrusive to the program design).
A thread runs in the background, often on a second CPU, continuously checking the program's data and code to ensure that the ECC data is valid. When an error is detected, it is logged and corrected if possible.
When modifying data, a flag is set for that memory block that it has been altered; a new ECC value is calculated as soon thereafter as possible. (This is done automatically by setting the CPU to generate an exception when writing to a particular segment. It's a feature built into Intel processors and available through high-level calls in both Windows and Linux.)
I'm sure you remember the Java exploit from a couple of years back, where the security model was bypassed completely by blowing a hairdryer on the RAM until a byte code error was induced in very-carefully-constructed code. Software ECC is the kind of thing you need to do to mitigate those types of attacks.
While it's possible, RAM is a hardware failure and can rarely be connected with software.
On the other hand, our handy ability to shut down and clear out bad programming is a luxury that might become more difficult with the new RAM technology.
This could mean that viruses and other malware could remain even more resistant to removal than before!
No, that's wrong. The truth is that errors in dynamic RAM can be introduced on each refresh. As you said yourself, dynamic RAM needs to be refreshed every few milliseconds--read and rewritten. Each time that happens, it's possible for an error to be introduced. If the refresh circuitry reads the value incorrectly, you get an error. If it writes the value incorrectly, you get an error. The longer the RAM sits around, the more refresh cycles, so the greater the chance for errors. If the voltages aren't stable enough, for example, you'll find a "1" bit refreshed with slightly too low of a current so that when the next refresh comes around, it's read as a "0" as it's been discharging over time and falls just below the threshhold to be read as a "1".
As far as errors not being introduced when the memory is "idle," you're thinking of static RAM. Static RAM doesn't need to be refreshed, and thus actually CAN be idle. So it holds a huge advantage here. Without the refresh cycle, there's no place for errors to be introduced except during the actual reads and writes by the processor.
...but they won't be the same as uses for RAM or for hard disk.
Using it for RAM would be silly - RAM is supposed to be transient, keeping it around would be a security and stability loss.
Using it for hard disk would be silly - the price per megabyte would be ridiculous unless you're doing stock-market data crunching or some such.
Some uses I can immediately see for it:
- boot the OS, and save a snapshot for an instant reboot
- use it to store persistent caches of binaries, libraries, etc
- use it for filesystem and database journals
- do RAID4 and use it to hold the parity volume
Without the refresh cycle, there's no place for errors to be introduced except during the actual reads and writes by the processor.
What about external influences (heat, cosmic radiation, etc)?
What's in a sig?
Yes and it just gets worse as chip densities increases. That's why IBM invented Chipkill (which is essentially RAID-5 for ECC RAM banks). The error rate for 1GB ECC memory-equipped server is 9 outages per 100 servers over 3 years IBM whitepaper, pdf. Non-ECC ram is probably rediculously high!
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
The ones who aren't lazy are too busy reading slash dot.
/. when we should be working.
Umm... I'm not sure in what world you live, but Slashdot isn't the meeting place for the world's best and most ambitious programmers. *We* are the lazy ones, reading
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad