RM Labs

The palm LifeDrive, Tungsten T5 and Treo 650

Flash Memory and Hard Drives and What it all Means to You

LifeDrive

Battery ran down on your new Tungsten T5? No problem. Changing batteries on your Treo 650 and got distracted for an hour? You're safe. Your data will still be there, all of it, thanks to a new feature in palm's latest handhelds, known technically as NVFS (Non-Volatile File System) or NAND Flash, but described in marketing terms as simply Flash.

NVFS - What is it? What does it mean?

  • NV - Non Volatile
    • it won't evaporate when it loses power
  • FS - File System
    • data is stored in a file system exactly as it is on an SD Card or memory stick

Add it up and you get all of your data stored in a place that won't be erased when your battery runs down or is removed. How long will your data persist? Forever - it's non-volatile...

As mentioned above, NVFS is the technical term for this new system. On the Tungsten T5 and Treo 650 box, you will see it described simply as, for example, "256MB OF FLASH MEMORY."

So, if this new system is non-volatile, that must mean my current pda is... volatile? Yep, as we all have probably experienced at least once in our lives, most PDAs will forget everything you ever told them once the battery runs completely down. This is a huge turn-off for new users who are used to having things saved on a hard drive that never forgets... if they go on vacation and forget to charge their device while they're gone, it's a shocker to find everything wiped clean.

The NVFS system essentially backs up the system at all times to flash memory, so even if the battery runs completely down, the data remains. It really is much more like having a hard drive in the system, as opposed to RAM that needs to be kept alive by the battery.

Another advantage of this is that data is not at risk when changing batteries. For example, the Treo 650, with a removable battery, is very safe. There is no "60 second window" to change batteries like there was on old battery-operated devices. The data is safe even with the battery removed.

Cool things about NVFS

Since the NVFS acts like a big internal SD card, you can actually store files in it just like an SD card. The Tungsten T5 has a huge 155MB partition of the NAND Flash that appears as a storage card on the device, like having an SD card built in.

But both the Tungsten T5 and the Treo 650 have a hidden "built in" storage card that holds all of the standard data like address book entries and datebook entries - what you would normally think of as the "internal RAM" of the device. Since this internal storage is also a standard file system, you can store files on it without converting them to a funky "palm database" format.

AcidImage, for example, shows this internal volume on the Tungsten T5 as "BUILTIN", while it shows the larger 155MB storage area as "INTERNAL". This may be a bit confusing, since they are both built in, and they are both internal, and they both behave exactly the same. The only difference is, the "BUILTIN" area is equivilent to the amount of "storage heap" your device has - that is, the BUILTIN area is shared with all of your other applications, like the address book, date book, etc., so you don't really want to fill this all the way up. When you check the Free Space from the "Info..." menu selection in the program launcher, it will tell you how much space is free in the "BUILTIN" partition of the NAND Flash.

Confused? If not, read on!!!

How It Really Works

All user data on the Tungsten T5 and Treo 650 is stored in NAND Flash - this type of flash is known for being fastest when reading and writing large blocks, and when erasing large blocks. It is Flash memory, but it can't be accessed directly like memory - the NAND Flash really is accessed more like a hard drive.

Normally, on a Palm OS handheld, all "internal" databases are stored in regular RAM, and that RAM is kept alive by the battery, even when the device is off. With NVFS, internal databases are stored in the NAND Flash - but since they can't be accessed directly from the NAND Flash, they have to be loaded into RAM first.

The NVFS takes care of loading data from the NAND Flash into a RAM buffer when needed. The RAM buffer available for user data is about 10 megabytes. When something from internal storage is needed, the NVFS system loads that into a part of that 10 megabyte RAM buffer. If the information is modified, then the NVFS system writes that buffer back to the NVFS - probably in a large chunk, since NAND functions fastest when writing in large chunks. This writing is done when a database is closed, and also whenever the device goes into sleep mode, to make sure everything is saved in case the battery runs all the way down.

This system of flash and RAM can get confusing when talking about how much "RAM" the device has. A Tungsten T5 for example has 256MB of NAND Flash, and 32MB of RAM. You won't hear anything about the 32MB of RAM, since all of it is used to store system data and the RAM buffer. Instead, the T5 literature says things like "55 MB of program memory, 160MB internal drive". What this really means is that 55MB of the internal NAND Flash is set aside to store your "storage heap" databases, and 160MB of that NAND Flash is set aside to act like a memory card. What about the other 41MB of the NAND Flash? It is used to store other system files and the ROM image (compressed).

So in addition to all of this NAND Flash, there is 32MB of RAM in there, but it is already accounted for. Half of it is taken up by the ROM image after it is decompressed from NAND (recall that the NAND flash can't be accessed directly, so anything in use must be stored in this 32MB of RAM). Another 6MB of this RAM is taken up by the "Dynamic Heap" - the working area used by active programs. And the remaning 10MB is used to swap data in and out from the 55MB virtual "storage heap" stored in NAND.

Two things to note about this - one is that in future devices, the device used for storage need not be NAND flash (though it probably will be for the foreseeable future) - it could just as easily be a hard drive.

The other thing to note is that all of this swapping in and out is a new thing for Palm OS... does it slow anything down? We decided to do some quick tests.

Speed Smoke Test

We did a really quick "smoke test" to see if the NVFS system slowed things down at all. A "smoke test" is what we do in our labs to really quickly see if anything is majorly wrong. Turn it on, and if nothing is smoking, it passed the smoke test. In other words, our speed test here is superficial and brief, just to see if the device in normal use feels as fast as a regular Palm OS handheld.

We beamed over an 820 entry address book, and 5 years' worth of appointments in a datebook, and did some searches. Side by side searches with a Treo 600 (using standard memory) showed almost identical speed results.

This makes sense - the RAM cache on the new NVFS devices is about 10 megabytes, and our datebook and address book databases were very small. So, when we were doing our searches, these databases were probably loaded entirely into RAM.

In general, if you are dealing with small sets of data, the 10 megabyte cache should be plenty of space to make these devices run at full speed. However, if you're dealing with data larger than 10 megabytes, things might be slow, or not work at all. In all of our simple tests, the T5 performed very quickly and the speed felt really great.

Another smoke test we did was to run a few slideshows with AcidImage, and load up some JPEG backgrounds with AcidSolitaire and AcidFreecell. The speed overall was great, whether the backgrounds were being loaded from an external card, or from an internal NVFS volume. Copying images from an SD card to an internal NVFS volume with AcidImage was also quick.

Still not confused? How about this...

One side effect of the NVFS system is that, although your system may claim to have 55 megabytes of memory free, you can't use all of it at once. If an application tries to access more than 10MB of data at one time, it will find itself out of memory.

This can be really confusing - a Tungsten T5 with 55MB free can get an out of memory error before a Tungsten T3 with 12 megabytes free if an application tries to open up 12 megabytes worth of databases all at once. In general, the 10MB RAM data cache should be more than enough for most uses, but for hugely memory-intensive applications, the 55MB of memory that appears to be free could be misleading.

How does this affect Red Mercury apps?

All versions of AcidImage, including AcidImage Basic, have been updated to access all sections of NVFS, including the hidden internal volume. As stated above, this "BUILTIN" area should be used sparingly, but it is used by the palm builtin applications to store data, so AcidImage gives you access to it as well.

AcidFreecell and AcidSolitaire will now scan all of the NVFS for JPEG backgrounds if you checkmark "Scan All Volumes". This includes any images stored internally on NVFS, for example, from the Treo 650 built-in camera.

The updated versions are available for download and are a free upgrade to registered users.

Enjoy your NVFS NAND Flash!

E for Everyone

Copyright © 2006 Red Mercury, LLC. All rights reserved.