Colin Walls, Mentor Graphics
EDN (November 23, 2014)
Although flash and other non-volatile memory technologies are widely used to implement embedded file systems, this may be too complex for some embedded applications. In many cases the memory may be most efficiently used as data structures that have been pre-initialized. This approach requires some management of data integrity. This article introduces the challenges and offers some simple solutions to using NVRAM.
Introduction to NVRAM
In a modern computer system, there is a large amount of memory. Most of it is the anachronistically named random access memory (RAM). The name makes little sense, as all memory is random access nowadays. When engineers talk about RAM, they mean volatile semiconductor memory, which can be written to and read from indefinitely so long as power is applied. It was not always like this. In the early days of computers, the most common form of program/data storage was “core memory”. This was, by modern standards, bulky and heavy (not to mention expensive!), but had a useful characteristic: it was non-volatile. Power was required to read or write data, but was not needed to retain it. With the core memory powered down, data would remain unchanged for indefinite periods of time. Interestingly, dropping or vibrating core memory could corrupt its contents, but this was rarely a cause for concern (except in earthquake zones) because computers were far from portable.
Click here to read more ...