UFFS 1.1.1

UFFS is an ultra low cost flash file system for embedded system.
UFFS
  1 Screenshot
UFFS is an ultra low cost flash file system for embedded system.

UFFS is a NAND flash file system designed for embedded system, it performs some unique and advanced features:

Low cost:

For NAND flash with 512 page size:
NAND flash | Total Blocks | Buffers/Caches | Total RAM cost

128M | 8192 | 40/30 | 164K
32M | 2048 | 40/30 | 68K
16M | 1024 | 10/10 | 26K

Tree Nodes: 16 * toatl_blocks

Page Buffers: page_size(512) * buffers (10 ~ pages_per_block)
Block info caches: (14 * pages_per_block) * block_info_caches ( 5 ~ 20)

Total Memory usage = Tree Nodes + Page Buffers + Block info caches + Others(1~2K)

For NAND flash with 2K page size:

NAND flash | Total Blocks | Buffers/Caches | Total RAM cost

512M | 8192 | 40/30 | 180K
128M | 512 | 40/30 | 70K

Tree Nodes: 16 * toatl_blocks

Page Buffers: page_size(2048) * buffers (10 ~ pages_per_block)

Block info caches: (14 * pages_per_block) * block_info_caches ( 5 ~ 20)

Total Memory usage = Tree Nodes + Page Buffers + Block info caches + Others(1~2K)

Fast booting

UFFS read only one spare area for each NAND flash block to build up the in-memory nodes tree. Typically, UFFS needs less then 1 second to mount a full loaded 128 Mbytes NAND flash.

Superb Reliability

Guaranteed integrity across unexpected power losses.

Bad-block tolerant, ECC enable and ware-leveling

Nothing new for flash file system, but UFFS implements these in a simple yet effective way.

No garbage collection needed for UFFS

UFFS collect the 'dirty blocks' on the fly, no garbage collection needed.

Support direct flash interface, no operating system needed

UFFS can be build on top of direct flash interface,easy to port to any embedded system.

Fully tested

UFFS is fully tested on PC (via UFFS PC emulator). Moreover, UFFS is not just 'proof-of-concept' but has been successfully used in real world product for tens of thousands of copies.

What UFFS "IS", "IS NOT" ?

UFFS is not a Linux kernel module.
UFFS is not running in a separated thread rather than application.
UFFS is a library to be linked with your embedded application.
UFFS should be used when JFFS/YAFFS can't be used (because of the insufficient of memory)
UFFS is not the substitute of JFFS or YAFFS.

Why UFFS ?

· Hardware resource is limited (typically 64~512K RAM), but need a reliable flash file system
· JFFS/JFFS2 sucks (useless without Linux/MTD, also memory monster)
· YAFFS/YAFFS2 is excellent, but still consumes too much memory
· Others ? ... not available... (open source of course)

last updated on:
December 5th, 2007, 22:34 GMT
price:
FREE!
developed by:
Ricky Zheng
homepage:
gouffs.googlepages.com
license type:
GPL (GNU General Public License) 
category:
ROOT \ System \ Filesystems
UFFS
Download Button

In a hurry? Add it to your Download Basket!

user rating 17

3.5/5
 

0/5

Rate it!

Add your review!

SUBMIT