I was asked to write an article about the differences between
RAM ,
ROM ,
NAND , and
NOR . Since the answer to this question is not difficult and less controversial than my next planned article, I will go through the least resistance and tell about it first.
Why do I want to tell about it?When you buy a
WM- based device, you will see the amount of
RAM and
ROM advertised on the web pages. I want to provide you with enough information for you to make the right and informed choice.
')
RAM vs ROMAll abbreviations about which we will speak here refer to the type of memory. Memory is used to store data on your device. Phone numbers, pictures, programs, music, etc. etc. - all this requires memory. Ignoring outdated technologies that no one uses now, as well as such rare and exotic ones that are not intended for the mass market yet, there are two types of memory:
RAM and
ROM . Their similarity is that they are designed to store data. But their main differences are in the speed of work and energy consumed.
RAM : very fast, but consumes enough energy.
ROM : much slower, but more energy efficient.
But, more significantly,
RAM needs constant power to store data, while
ROM does not. In other words, if your battery runs out of power, the data in the
RAM will be lost, but not in the
ROM .
How is it used?Before the advent of
WM5 , this was a difficult issue. With
Persistent Storage , everything has become much easier.
ROM is the
storage location. All programs and
OS , which represent the software on the device, are stored in
ROM . Your data is also stored in
ROM . Both
SD and
CF memory cards are
ROM storage. In fact, your device was implanted with an
SD card that you cannot remove.
RAM is the place where programs
are executed . When you turn on your device, programs from
ROM are loaded into
RAM and already there, in
RAM , they work. When you listen to music, some of the composition is loaded from
ROM to
RAM , played back, unloaded back, and loads the next part, etc. When you read an email, the text is loaded from
ROM to
RAM and displayed on the screen. When you move to the next letter, the old text is unloaded from memory and the new text is loaded. Turning back to the previous letter, it will again be loaded from
ROM to
RAM .
Note translator: the process of loading and unloading data is described formally, to simplify the model, but the essence remains the same.So, generally speaking, the amount of available
RAM determines the amount of simultaneously loaded data. And the amount of
ROM - how much data you can store on your device.
How much memory do I need?Due to the nature of the hardware limitations, the amount of memory is clearly regulated. Deviations are rare. Basically, the amount of memory is not less than 32Mb and increases, remaining a multiple of two. 32MB, 64MB, 128MB, 256MB, etc.
A “typical”
WM5 device will have 64MB of
RAM . 32MB of
RAM will only be appropriate if the device uses the "
NOR "
ROM (more on this later). Due to the high power consumption, there is a “flip side of the coin” with too much
RAM . And, for this reason, 128MB of
RAM is unlikely, but it is possible for certain “professional use” devices.
So, a “typical”
WM5 device will have 64MB of
RAM . There are no other limitations, besides the cost, to have more
RAM . However, if you can afford it, then more
RAM will never be superfluous.
There are many different versions of
WM5 - Smartphone, PocketPC, PocketPC Phone Edition, and their variations. The language of the operating system also affects the choice of memory size (for example, Asian fonts occupy a large amount of memory). But, a rough rule of thumb can be formulated as follows: the software of your device will take about 32MB. So, if you buy a typical device with 64MB
ROM , then you can store about 32MB of your own data. If you have a 128MB
ROM - you can store about 96MB of your data.
You do not need to throw me angry letters if you buy a device with 64MB of
ROM and you only have 30MB free. All devices are different, so the amount of available memory is also different.
We need to find a compromise. Other things being equal, I would prefer a device with 32MB of
RAM and 128MB of
ROM , compared to a device that has 64MB of
RAM and 64MB of
ROM . But I would like 64MB
RAM and 256MB
ROM :-). Of course, the latter would have cost
significantly more.
See how all this is marketed by marketers. Some say: “We provide 64Mb
ROM ”, others say “30Mb available for user data”. They mean the same thing, but talk about it in different words. Although, due to the nature of marketing, I am sure that they would prefer to talk about the big numbers :-).
What about other capital letters?Now let's go to
NAND and
NOR . These are the two main types of
ROM . They are, to a large extent, used in the same way, and everything I said about
ROM is true for both of them. So, you can not care about which of these types of memory you have. But I will tell you about them anyway.
NOR : faster reading, slower writing.
NAND : slower reading, faster writing.
This is all relative. Both types are significantly slower than
RAM . There is one very important difference in these technologies.
NOR allows you to do something that we call “performing on the spot” (
XIP ). Remember what we said at the beginning. To execute a program, you first load it into
RAM , and then you execute it from there.
NOR allows you to execute a program directly from
ROM without loading it into
RAM in advance. This means that you can have a system with less
RAM . Notice that this only works for
programs . You cannot "perform on the spot" an image or sound file. Inability to
XIP ,
NAND compensates for its cost (
NAND is usually cheaper.)
Since
NAND is faster to write, and
NOR to read, the ideal system should have 64MB
NOR and 64MB
NAND . Then all programs would be stored in the
NOR , and user data would be stored in
NAND . Since all the programs would be executed “on-site”, there would be no need for 64MB of
RAM , which would reduce its volume to 32Mb while saving the precious charge of your battery. “Running onsite” would also mean faster loading of programs, since there would be no need to load the program into
RAM before execution. Such a device would be just a fairy tale!
By the way,
SD and
CF memory cards are based on
NAND . Thus, there is no possibility for “executing on-site” the programs stored on them.
There is much more that I could tell about, but then it would be a rather long narration. So, I put the point here.
- Related articles: