# Non-Volatile File System

Non-Volatile File System (NVFS) is a flash memory file system introduced in the release of Palm's Personal Digital Assistant handheld models Tungsten T5, Tungsten E2, Palm TX, Z22, Treo 650/700/680/755p, and Palm Centro.

## Background
### Overview of NVFS

The NVFS, as claimed by palmOne, is a file system designed to keep all information safe should the battery run out of power. Previous non-flash memory designs would lose all stored data in the event of a power loss. NVFS is a derivative of flash memory, which continually stores all data even when no power is applied. palmOne invented NVFS in response to complaints that a handheld's data was destroyed when the battery power ran out. In the past, it was necessary to keep the handheld continuously charged to avoid losing data, since all information was stored in volatile memory.
A similar feature has been adopted by PDAs running the Windows Mobile 5.0 operating system, and is named "Persistent Storage".

### Architecture and specifications

NVFS uses NAND flash memory technology to retain the handheld's data in the event of a battery swap or if the battery runs out of power. palmOne claims that flash memory is a plus for the majority of their consumers since many of them do not want to charge the handheld too often, and it consumes less overall power. NVFS uses a brand-new data architecture which might render incompatible some applications which ran very well with non-NVFS handhelds.

### Controversy and unfavorable remarks from power users

Because the NVFS File System was designed to use clusters of 512 byte blocks, power users have complained that files take approximately 33% more space than in volatile file systems. In fact a volatile file system uses a block size of only 14 bytes, compared to the NVFS File System minimum block size of 512 bytes. palmOne responded to this complaint by offering a free 128 megabyte SD card on request to selected customers. At the NVFS Early Release, Palm (at the time palmOne) would commit itself to work on a ROM Flash Update to reduce the overhead of the NVFS Architecture. Currently Palm-branded products using NVFS should be shipped with the NVFS Fix already installed. (The Tungsten E2 uses 4kb blocks.) (It is recommended those having earlier versions of the Palm Treo 650 and Tungsten T5 install the NVFS Fix at the earliest possible convenience). Such controversy gave the Tungsten T5 and the Treo 650 unfavorable remarks from power users.

### Later developments

palmOne released the first Sprint Treo 650 Updater which was designed to ensure that the block size overhead was reduced from 512 bytes to 16-32 bytes (Usually 32 bytes, but can be as low as 16 bytes depending on the file's demand), resulting in drastic memory management efficiency improvements of the NVFS File System. A second update to the Sprint Treo 650 was released on June 16, 2005. The Unlocked GSM Firmware Upgrade was also released on the day of the second Sprint Treo 650 firmware update which also improves the efficiency of the NVFS File System in addition to addressing known problems prior to the release of the firmware update. The Rogers Wireless Treo 650 Firmware Update was quietly posted at the Rogers Wireless Treo 650 support site, and shares the same bug fixes and NVFS memory efficiency updates as with the unlocked GSM version. The initial release of the palmOne Tungsten E2, Verizon Wireless Treo 650 and the Earthlink Wireless Treo 650 already has the NVFS Memory System problems assessed.
According to Palm Info Center on June 22, 2005, the palmOne Tungsten T5 Version 1.1 Update fixes the NVFS File System Inefficiency Problem since its release in November 2004. The Version 1.1 Update also updates the Tungsten T5's Version Number to Garnet 5.4.8.
On July 25, 2005, the Cingular Treo 650 Fix was officially released, with one of the fixes being addressing inefficiency problems associated with the NVFS File System. Cingular Treo 650 holders are encouraged to deploy this Flash ROM Update at the earliest time possible.