AFSS state-of-the-art study

Get Started. It's Free
or sign up with your email address
AFSS state-of-the-art study by Mind Map: AFSS state-of-the-art study

1. Flash characteristics

1.1. NAND

1.1.1. single 8-bit bus used for both data and addresses

1.2. NOR( not interesting)

1.2.1. directly addressable

1.2.2. sector: 128KB for NOR

1.3. page (NAND only)

1.3.1. smallest write unit

1.3.2. typical size = 2K (TBD)

1.3.3. + 64 bytes of "out of band" (OOB) storage space (TBD)

1.4. block

1.4.1. block = smallest erase unit

1.4.2. typical size = 128KB for NAND

1.5. limited number of erase cycles

1.5.1. 1'000

1.5.2. 10'000

1.5.3. 100'000

1.6. Flash+FTL

1.6.1. eMMC

1.6.2. SSD

2. Medium (flash) handling

2.1. NAND vs NOR

2.2. Wear-levelling

2.2.1. static (trade-off: useless for us)

2.2.2. dynamic

2.3. Scrubbing

2.3.1. synchronous/real-time version ?

2.4. Bad block management

2.5. Error detection and correction (ECC)

2.6. Garbage collection

2.6.1. synchronous version ?

2.6.2. at which layer ? FS, transl.

3. Existing flash file systems

3.1. FTL-based vs raw-flash FS

3.1.1. FTL-based

3.1.1.1. SSD

3.1.1.2. eMMC

3.2. Linux

3.2.1. MTD-based (MTD = Memory Technology Device)

3.2.1.1. JFFS

3.2.1.2. YAFFS

3.2.1.2.1. YAFFS direct

3.2.1.2.2. Highly portable

3.2.1.3. LogFS (GSoC)

3.2.1.4. features MTD, MTD block

3.2.2. UBI-based (UBI = Unsorted Block Images)

3.2.2.1. UBIFS

3.2.2.2. UBI works on top of MTD

3.2.2.3. wear-leveling on whole flash

3.3. Commercial solutions

3.3.1. Datalight FlashFX

3.4. RTEMS

3.4.1. Provides a FS framework (sort of VFS)

3.4.2. The Flash disk driver or FDISK driver maps a block disk device to flash devices.

3.4.3. No support for NAND

4. Flash FS in real-time environment

4.1. Challenges

4.1.1. Guaranteed R/W access times

4.1.2. Garbage collection should not get in the way of I/Os

4.2. Research

4.2.1. Article " An active space recycling mechanism for flash storage systems in real-time application environment"

4.2.2. Article " A Real-Time Garbage Collection Mechanism for Flash-Memory Storage Systems in Embedded Systems"

4.2.3. Article "Real-Time Support of Flash Memory File System for Embedded Applications"

4.3. Existing solutions

4.3.1. YAFFS on eCos http://www.ecoscentric.com/devzone/yaffs.shtml

4.3.2. YAFFS on RTEMS: https://github.com/milkymist/rtems-yaffs2

5. File system techniques

5.1. Log structured

5.1.1. JFFS, YAFFS,

5.1.2. wear-leveling "for free"

5.2. Journaling

5.3. Transaction based

5.3.1. consistency !

5.3.2. TRFS, HRFS (VxWorks)

5.4. Compression

5.4.1. useless for now...

5.5. file allocation techniques ?

5.5.1. inode

5.5.2. tables

5.5.3. ...

6. Flash FS challenges

6.1. scalability (with increasing Flash size)

6.1.1. RAM usage

6.1.2. mount time

6.2. fast mount time

6.2.1. chip scanning

6.2.2. checkpointing

6.3. fast write I/O

6.3.1. copyback vs writethrough

6.4. tolerance to power failures