14.11.2012 Views

Choosing a Linux Flash File System - Micron

Choosing a Linux Flash File System - Micron

Choosing a Linux Flash File System - Micron

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Choosing</strong> a <strong>Linux</strong> <strong>Flash</strong><br />

<strong>File</strong> <strong>System</strong><br />

Wanmo Wong<br />

<strong>Micron</strong> Technology, Inc.<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

1


<strong>Linux</strong> <strong>File</strong> <strong>System</strong> Overview<br />

Network <strong>File</strong> <strong>System</strong><br />

Class<br />

(AFS, CIFS, etc)<br />

AFS - Andrew FS<br />

CIFS - Common Internet FS<br />

Application<br />

Virtual <strong>File</strong> <strong>System</strong> (VFS)<br />

<strong>Flash</strong> Based <strong>File</strong> <strong>System</strong><br />

Class<br />

(YAFFS2, JFFS2, etc)<br />

Block based <strong>File</strong> <strong>System</strong><br />

Class<br />

(EXT3, VFAT, etc.)<br />

Special <strong>File</strong> <strong>System</strong><br />

Class<br />

(/proc, /sys, etc)<br />

• <strong>Linux</strong> supports four file system classes through the virtual file system (VFS) API:<br />

• Network file system for data storage across network devices<br />

• <strong>Flash</strong> based file system for data storage with <strong>Flash</strong> memory devices<br />

• Disk based file system for data storage with disk or disk like devices<br />

• Special system for accessing system data and to implement special features<br />

/proc – General access point to kernel data<br />

/sys – General access point to system data<br />

• VFS API provides a common interface for applications to work with any mounted file system on a<br />

<strong>Linux</strong> platform.<br />

• <strong>Choosing</strong> a <strong>Linux</strong> file system depends on the selection of a file system class<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

2


<strong>Linux</strong> <strong>File</strong> <strong>System</strong> For <strong>Flash</strong> Devices<br />

Network <strong>File</strong> <strong>System</strong><br />

Class<br />

(AFS, CIFS, etc)<br />

AFS - Andrew FS<br />

CIFS - Common Internet FS<br />

Application<br />

Virtual <strong>File</strong> <strong>System</strong> (VFS)<br />

<strong>Flash</strong> Based <strong>File</strong> <strong>System</strong><br />

Class<br />

(YAFFS2, JFFS2, etc)<br />

Block Based <strong>File</strong> <strong>System</strong><br />

Class<br />

(EXT3, VFAT, etc.)<br />

Special <strong>File</strong> <strong>System</strong><br />

Class<br />

(/proc, /sys, etc)<br />

/proc – General access point to kernel data<br />

/sys – General access point to system data<br />

• <strong>Flash</strong> and disk based file system classes support <strong>Flash</strong> memory devices for data storage.<br />

• We will propose a set of considerations for choosing a <strong>Flash</strong> and block based file systems for your target<br />

<strong>Flash</strong> memory device<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

3


Popular <strong>Flash</strong> Memory Devices<br />

<strong>Flash</strong> Memory <strong>File</strong> <strong>System</strong> Class XIP Size in Bytes Read/Write Unit<br />

NOR <strong>Flash</strong> (Parallel or Serial) <strong>Flash</strong> or Block Yes 64 to 128 MB 1 Byte<br />

SLC NAND <strong>Flash</strong> <strong>Flash</strong> or Block No 256MB to 1GB 512, 2K, 4K<br />

MLC NAND <strong>Flash</strong> <strong>Flash</strong> or Block No 4GB to 8GB 4K, 8K<br />

ECC Free NAND <strong>Flash</strong> or Block No 8GB to 16GB 4K, 8K<br />

ECC Free NAND with queuing <strong>Flash</strong> or Block No 16GB to 64GB 4K, 8K<br />

e·MMC Block No 4GB to 32GB 512<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

4


NAND and NOR <strong>Flash</strong> Memory Devices<br />

� NAND device<br />

� Bytes are grouped into a page<br />

� Read and write data by page<br />

� Needs ECC to protect data in a page<br />

� Pages are grouped into a block<br />

� Blocks are grouped into a plane<br />

� Erase block before rewriting a page<br />

� Maximum erase cycle per block<br />

� Maximum write capacity:<br />

� NOR device<br />

� Maximum Erase Cycle * Byte/Page * Page/Block * Block/plane * Plane/Device<br />

� Read and write by byte<br />

� Bytes are grouped into a block<br />

� Erase block before rewriting byte<br />

� Maximum erase cycle per block<br />

� Maximum write capacity:<br />

� Erase Cycle * Byte/Block * Block/Device<br />

Page<br />

Byte<br />

Data Page<br />

Page<br />

Block Plane<br />

Block<br />

Block<br />

Block Plane<br />

Block<br />

Block<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

5


<strong>Linux</strong> <strong>Flash</strong> and Block Based <strong>File</strong> <strong>System</strong> Classes Block<br />

Diagram<br />

Common VFS interface<br />

for application to work<br />

with any mounted file<br />

system<br />

<strong>Flash</strong> based file system<br />

works directly with <strong>Flash</strong><br />

device through the MTD<br />

layer<br />

Selected SW<br />

NOR<br />

Driver<br />

NOR<br />

Controller<br />

NOR<br />

Application<br />

Virtual <strong>File</strong> <strong>System</strong> (VFS)<br />

<strong>Flash</strong> Based <strong>File</strong> <strong>System</strong><br />

(YAFFS2, JFFS2, etc)<br />

MTD Layer<br />

NAND<br />

Driver<br />

SLC<br />

NAND<br />

Page Cache<br />

ECC<br />

NAND<br />

Driver<br />

NAND<br />

Controller<br />

MLC<br />

NAND<br />

ECC<br />

Free<br />

NAND<br />

Block Based <strong>File</strong> <strong>System</strong><br />

(EXT3, VFAT, etc.)<br />

FTL<br />

Block<br />

Driver<br />

<strong>Flash</strong><br />

Driver<br />

Block Layer<br />

SATA<br />

Block<br />

Driver<br />

SATA<br />

Driver<br />

SATA<br />

Controller<br />

SATA<br />

Drive<br />

MMC<br />

Block<br />

Driver<br />

Stack<br />

MMC<br />

Controller<br />

MMC<br />

Device<br />

Driver SW Physical Device<br />

<strong>Linux</strong><br />

user space<br />

<strong>Linux</strong><br />

Kernel space<br />

Embedded<br />

Platform<br />

Block based file system<br />

works with block devices<br />

like SATA drive through<br />

the block layer<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

6


<strong>Linux</strong> <strong>Flash</strong> Based <strong>File</strong> <strong>System</strong> Classes Block Diagram for<br />

<strong>Flash</strong> Memory<br />

Common VFS interface<br />

for application to work<br />

with any mounted file<br />

system<br />

<strong>Flash</strong> based file system<br />

works directly with <strong>Flash</strong><br />

device through the MTD<br />

layer<br />

Selected SW<br />

NOR<br />

Driver<br />

NOR<br />

Controller<br />

NOR<br />

Application<br />

Virtual <strong>File</strong> <strong>System</strong> (VFS)<br />

<strong>Flash</strong> Based <strong>File</strong> <strong>System</strong><br />

(YAFFS2, JFFS2, etc)<br />

MTD Layer<br />

NAND<br />

Driver<br />

SLC<br />

NAND<br />

Page Cache<br />

ECC<br />

NAND<br />

Driver<br />

NAND<br />

Controller<br />

MLC<br />

NAND<br />

ECC<br />

Free<br />

NAND<br />

Driver SW Physical Device<br />

<strong>Linux</strong><br />

user space<br />

<strong>Linux</strong><br />

Kernel space<br />

Embedded<br />

Platform<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

7


Considerations for a <strong>Flash</strong> Based <strong>File</strong> <strong>System</strong><br />

� <strong>File</strong> system maximum partition and file size capacity<br />

� Confirm the file system partition size supports the target <strong>Flash</strong> device size<br />

� Confirm the file system file size is big enough for the target flash device<br />

size<br />

� <strong>File</strong> system startup time<br />

� Confirm the file system initialization time meets the project specification<br />

� <strong>File</strong> system robustness<br />

� Confirm the file system restarts from a power loss event consistently<br />

� Confirm the file system does not lose or corrupt existing data after a<br />

power loss event<br />

� <strong>File</strong> system RAM requirement<br />

� Confirm the code and data size of the file system meet the project<br />

specification<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

8


Considerations for a <strong>Flash</strong> Based <strong>File</strong> <strong>System</strong><br />

� <strong>File</strong> system support for delete sector<br />

� Enable the delete sector feature in the file system if it is supported.<br />

� <strong>File</strong> system write amplification<br />

� Choose the file system with the minimum write amplification. Write<br />

amplification is the ratio between the total number of bytes written by the<br />

file system and the number of bytes written by the application.<br />

� <strong>File</strong> system compatibility with USB Mass storage devices<br />

� USB mass storage device compatibility allows a desktop system to<br />

access the file system as a USB hard drive.<br />

� <strong>File</strong> system bad block management<br />

� Reclaim data and remap block with programming error.<br />

� Remap block with erasing error.<br />

� <strong>File</strong> system sequential read/write performance<br />

� <strong>File</strong> system random read/write performance<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

9


Considerations for a <strong>Flash</strong> Based <strong>File</strong> <strong>System</strong><br />

� <strong>File</strong> system support for execute-in-place (XIP)<br />

� XIP allows execute of program directly from the <strong>Flash</strong> memory<br />

without first copying to DRAM<br />

� This feature is available with NOR <strong>Flash</strong> devices only<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

10


Considerations for a <strong>Flash</strong> Based <strong>File</strong> <strong>System</strong><br />

� MTD driver<br />

� Confirm the MTD driver is available for your target <strong>Flash</strong> memory device,<br />

OS version, and platform<br />

� MTD startup time<br />

� Confirm the startup time of the MTD driver and the file system startup time<br />

meet the project specification<br />

� MTD driver RAM requirement<br />

� Confirm the code and data size of the MTD driver plus the file system<br />

RAM requirement meet the project specification<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

11


Considerations for a <strong>Flash</strong> Based <strong>File</strong> <strong>System</strong> – 8GB MLC <strong>Flash</strong> Example<br />

Attributes YAFFS2 JFFS2<br />

<strong>File</strong> system Capacity 4GB 4GB<br />

<strong>File</strong> size 2GB 4GB<br />

Startup time Implementation dependent Implementation dependent<br />

Power loss restart SLC only SLC only<br />

Power loss data protection SLC only SLC only<br />

RAM requirement Implementation dependent Implementation dependent<br />

Delete sector feature No No<br />

Write amplification<br />

Bad block management Yes Yes<br />

USB mass storage compatibility No No<br />

XIP No No<br />

Sequential write performance Implementation dependent Implementation dependent<br />

Sequential read performance Implementation dependent Implementation dependent<br />

Random write performance Implementation dependent Implementation dependent<br />

Random read performance Implementation dependent Implementation dependent<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

12


Considerations for a <strong>Flash</strong> Based <strong>File</strong> <strong>System</strong> – 8GB MLC <strong>Flash</strong> Example<br />

Attributes YAFFS2 JFFS2<br />

MTD Driver available for device Implementation dependent Implementation dependent<br />

Driver available for OS and platform Implementation dependent Implementation dependent<br />

Startup time Implementation dependent Implementation dependent<br />

RAM requirement Implementation dependent Implementation dependent<br />

Total Startup time of file system + MTD Implementation dependent Implementation dependent<br />

RAM requirement of file system + MTD Implementation dependent Implementation dependent<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

13


<strong>Linux</strong> Block Based <strong>File</strong> <strong>System</strong> Classes Block Diagram for<br />

<strong>Flash</strong> Memory<br />

Common VFS interface<br />

for application to work<br />

with any mounted file<br />

system<br />

Selected SW<br />

NOR<br />

Driver<br />

NOR<br />

Controller<br />

NOR<br />

MTD Layer<br />

Application<br />

Virtual <strong>File</strong> <strong>System</strong> (VFS)<br />

NAND<br />

Driver<br />

SLC<br />

NAND<br />

Page Cache<br />

ECC<br />

NAND<br />

Driver<br />

NAND<br />

Controller<br />

MLC<br />

NAND<br />

ECC<br />

Free<br />

NAND<br />

Block Based <strong>File</strong> <strong>System</strong><br />

(EXT3, VFAT, etc.)<br />

FTL<br />

Block<br />

Driver<br />

<strong>Flash</strong><br />

Driver<br />

Block Layer<br />

MMC<br />

Block<br />

Driver<br />

Stack<br />

MMC<br />

Controller<br />

MMC<br />

Device<br />

Driver SW Physical Device<br />

<strong>Linux</strong><br />

user space<br />

<strong>Linux</strong><br />

Kernel space<br />

Embedded<br />

Platform<br />

Block based file system<br />

works with block devices<br />

like SATA drive through<br />

the block layer<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

14


<strong>Linux</strong> Block Based <strong>File</strong> <strong>System</strong> + MTD Classes Block<br />

Diagram for flash memory<br />

Common VFS interface<br />

for application to work<br />

with any mounted file<br />

system<br />

Selected SW<br />

NOR<br />

Driver<br />

NOR<br />

Controller<br />

NOR<br />

MTD Layer<br />

Application<br />

Virtual <strong>File</strong> <strong>System</strong> (VFS)<br />

NAND<br />

Driver<br />

SLC<br />

NAND<br />

ECC<br />

NAND<br />

Driver<br />

NAND<br />

Controller<br />

MLC<br />

NAND<br />

Page Cache<br />

ECC<br />

Free<br />

NAND<br />

Block Based <strong>File</strong> <strong>System</strong><br />

(EXT3, VFAT, etc.)<br />

FTL<br />

Block<br />

Driver<br />

Block Layer<br />

Driver SW Physical Device<br />

<strong>Linux</strong><br />

user space<br />

<strong>Linux</strong><br />

Kernel space<br />

Embedded<br />

Platform<br />

Block based file system<br />

works with block devices<br />

like SATA drive through<br />

the block layer<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

15


Considerations for a Block Based <strong>File</strong> <strong>System</strong> with FTL +<br />

MTD<br />

� <strong>File</strong> system maximum partition and file size capacity<br />

� Confirm the file system partition size supports the FTL partition size<br />

� Confirm the file system file size is big enough for the FTL partition size<br />

� <strong>File</strong> system startup time<br />

� Confirm the file system initialization time meets the project specification<br />

� <strong>File</strong> system robustness<br />

� Confirm the file system restarts from a power loss event consistently<br />

� Confirm the file system does not lose or corrupt existing data after a<br />

power loss event<br />

� <strong>File</strong> system RAM requirement<br />

� Confirm the code and data size of the file system meet the project<br />

specification<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

16


Considerations for a Block Based <strong>File</strong> <strong>System</strong> with FTL + MTD<br />

� <strong>File</strong> system support for delete sector<br />

� Enable the delete sector feature in the file system if it is supported.<br />

� <strong>File</strong> system write amplification<br />

� Choose the file system with the minimum write amplification. Write<br />

amplification is the ratio between the total number of bytes written by the<br />

file system and the number of bytes written by the application.<br />

� <strong>File</strong> system compatibility with USB mass storage devices<br />

� USB mass storage device compatibility allows a desktop system to<br />

access the file system as a USB hard drive.<br />

� <strong>File</strong> system sector size<br />

� Choose sector size to be a multiple of the <strong>Flash</strong> device read/write unit size<br />

� <strong>File</strong> system sequential read/write performance<br />

� <strong>File</strong> system random read/write performance<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

17


Considerations for a Block Based <strong>File</strong> <strong>System</strong> with FTL + MTD<br />

� FTL partition size capacity<br />

� Confirm the FTL partition size supports the target <strong>Flash</strong> memory device<br />

size<br />

� FTL startup time<br />

� Confirm the FTL initialization time meets the project specification<br />

� FTL robustness<br />

� Confirm the FTL restarts from a power loss event consistently<br />

� Confirm the FTL does not lose or corrupt existing data after a power loss<br />

event<br />

� FTL RAM requirement<br />

� Confirm the code and data size of the FTL meet the project specification<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

18


Considerations for a Block Based <strong>File</strong> <strong>System</strong> with FTL + MTD<br />

� FTL support for delete sector<br />

� Enable the delete sector feature in the FTL if it is supported.<br />

� FTL write amplification<br />

� Choose the FTL with the minimum write amplification. Write amplification<br />

is the ratio between the total number of bytes written by the FTL and the<br />

number of byte written by the file system.<br />

� FTL sequential read/write performance<br />

� FTL random read/write performance<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

19


Considerations for a Block Based <strong>File</strong> <strong>System</strong> with FTL + MTD<br />

� MTD driver<br />

� Confirm the MTD driver is available for your target <strong>Flash</strong> memory device,<br />

OS version, and platform<br />

� MTD startup time<br />

� Confirm the startup time of the MTD driver and the file system startup time<br />

meet the project specification<br />

� MTD driver RAM requirement<br />

� Confirm the code and data size of the MTD driver plus the file system and<br />

FTL RAM requirements meet the project specification<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

20


Considerations for a Block Based <strong>File</strong> <strong>System</strong> FTL+MTD – 8GB MLC <strong>Flash</strong><br />

Example<br />

Attributes EXT3 VFAT<br />

<strong>File</strong> system Capacity 2TB-16TB 2TB<br />

<strong>File</strong> size 16GB to 2TB 4GB<br />

Startup time Implementation dependent Implementation dependent<br />

Power loss restart Yes No<br />

Power loss data protection Yes No<br />

RAM requirement Implementation dependent Implementation dependent<br />

Delete sector feature No Yes<br />

Write amplification Implementation dependent Implementation dependent<br />

Support sector size 512 byte to 4KB 512 byte to 4KB<br />

USB mass storage compatibility No Yes<br />

Sequential read performance Implementation dependent Implementation dependent<br />

Sequential write performance Implementation dependent Implementation dependent<br />

Random read performance Implementation dependent Implementation dependent<br />

Random write performance Implementation dependent Implementation dependent<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

21


Consideration for a Block Based <strong>File</strong> <strong>System</strong> FTL+MTD 8GB MLC flash device<br />

example<br />

Attributes EXT3 VFAT<br />

FTL Capacity 64GB 64GB<br />

Startup time Implementation dependent Implementation dependent<br />

Power loss restart Yes Yes<br />

Power loss data protection Yes Yes<br />

RAM requirement 4MB per 8GB 4MB per 8GB<br />

Delete sector feature Yes Yes<br />

Write amplification 1 to 2 1 to 2<br />

Bad block management Yes Yes<br />

Sequential read performance Implementation dependent Implementation dependent<br />

Sequential write performance Implementation dependent Implementation dependent<br />

Random read performance Implementation dependent Implementation dependent<br />

Random write performance Implementation dependent Implementation dependent<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

22


Considerations for a Block Based <strong>File</strong> <strong>System</strong> FTL+MTD – 8GB MLC <strong>Flash</strong><br />

Example<br />

Attributes EXT3 VFAT<br />

MTD Driver available for device Implementation dependent Implementation dependent<br />

Driver available for OS and platform Implementation dependent Implementation dependent<br />

Start up time Implementation dependent Implementation dependent<br />

RAM requirement Implementation dependent Implementation dependent<br />

Total <strong>File</strong> system + FTL + MTD startup time Implementation dependent Implementation dependent<br />

<strong>File</strong> system + FTL + MTD RAM<br />

requirement<br />

Implementation dependent Implementation dependent<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

23


<strong>Linux</strong> Block Based <strong>File</strong> <strong>System</strong> Classes Block Diagram for<br />

e·MMC <strong>Flash</strong> Memory<br />

Common VFS interface<br />

for application to work<br />

with any mounted file<br />

system<br />

Selected SW<br />

Application<br />

Virtual <strong>File</strong> <strong>System</strong> (VFS)<br />

Page Cache<br />

Block Based <strong>File</strong> <strong>System</strong><br />

(EXT3, VFAT, etc.)<br />

Block Layer<br />

MMC<br />

Block<br />

Driver<br />

Stack<br />

MMC<br />

Controller<br />

MMC<br />

Device<br />

Driver SW Physical Device<br />

<strong>Linux</strong><br />

user space<br />

<strong>Linux</strong><br />

Kernel space<br />

Embedded<br />

Platform<br />

Block based file system<br />

works with block devices<br />

like SATA drive through<br />

the block layer<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

24


Considerations for a Block Based <strong>File</strong> <strong>System</strong> with<br />

e·MMC <strong>Flash</strong> Memory<br />

� <strong>File</strong> system maximum partition and file size capacity<br />

� Confirm the file system partition size supports the FTL partition size<br />

� Confirm the file system file size is big enough for the FTL partition size<br />

� <strong>File</strong> system startup time<br />

� Confirm the file system initialization time meets the project specification<br />

� <strong>File</strong> system robustness<br />

� Confirm the file system restarts from a power loss event consistently<br />

� Confirm the file system does not lose or corrupt existing data after a<br />

power loss event<br />

� <strong>File</strong> system RAM requirement<br />

� Confirm the code and data size of the file system meet the project<br />

specification<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

25


Considerations for a Block Based <strong>File</strong> <strong>System</strong> with<br />

e·MMC <strong>Flash</strong> Memory<br />

� <strong>File</strong> system support for delete sector<br />

� Enable the delete sector feature in the file system if it is supported.<br />

� <strong>File</strong> system write amplification<br />

� Choose the file system with the minimum write amplification. Write<br />

amplification is the ratio between the total number of bytes written by the<br />

file system and the number of bytes written by the application.<br />

� <strong>File</strong> system compatibility with USB mass storage devices<br />

� USB mass storage device compatibility allows a desktop system to<br />

access the file system as a USB hard drive.<br />

� <strong>File</strong> system sector size<br />

� Support sector size to be a multiple of the <strong>Flash</strong> device read/write unit<br />

size<br />

� <strong>File</strong> system sequential read/write performance<br />

� <strong>File</strong> system random read/write performance<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

26


Considerations for a Block Based <strong>File</strong> <strong>System</strong> with<br />

e·MMC <strong>Flash</strong> Memory<br />

� MMC block driver stack startup time<br />

� Confirm the MMC block driver stack initialization time meets the project<br />

specification<br />

� MMC block driver stack RAM requirement<br />

� Confirm the code and data size of the MMC block driver stack meet the<br />

project specification<br />

� MMC block driver support for delete sector<br />

� Enable the delete sector feature in the MMC block driver if it is supported<br />

� MMC sequential read/write sector performance<br />

� MMC random read/write sector performance<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

27


Considerations for a Block Based <strong>File</strong> <strong>System</strong> MMC <strong>Flash</strong> Example<br />

Attributes EXT3 VFAT<br />

<strong>File</strong> system Capacity 2TB-16TB 2TB<br />

<strong>File</strong> size 16GB to 2TB 4GB<br />

Startup time Implementation dependent Implementation dependent<br />

Power loss restart Yes No<br />

Power loss data protection Yes No<br />

RAM requirement Implementation dependent Implementation dependent<br />

Delete sector feature No Yes<br />

Write amplification Implementation dependent Implementation dependent<br />

Support Sector Size 512 byte to 4KB 512 byte to 4KB<br />

USB mass storage compatibility No Yes<br />

Sequential read performance Implementation dependent Implementation dependent<br />

Sequential write performance Implementation dependent Implementation dependent<br />

Random read performance Implementation dependent Implementation dependent<br />

Random write performance Implementation dependent Implementation dependent<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

28


Considerations for a Block Based <strong>File</strong> <strong>System</strong> MMC <strong>Flash</strong> Example<br />

Attributes EXT3 VFAT<br />

MMC block driver stack Startup time Implementation dependent Implementation dependent<br />

RAM requirement Implementation dependent Implementation dependent<br />

Delete sector support Implementation dependent Implementation dependent<br />

Sequential read performance Implementation<br />

dependent<br />

Sequential write performance Implementation<br />

dependent<br />

Random read performance Implementation<br />

dependent<br />

Random write performance Implementation<br />

dependent<br />

Total Time for file system + MMC block driver<br />

stack<br />

RAM for file system + MMC block driver<br />

stack<br />

Implementation<br />

dependent<br />

Implementation<br />

dependent<br />

Implementation<br />

dependent<br />

Implementation<br />

dependent<br />

Implementation dependent Implementation dependent<br />

Implementation dependent Implementation dependent<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

29


Summary<br />

� The choice of a <strong>Linux</strong> file system depends on the selected file system<br />

class<br />

� <strong>Linux</strong> <strong>Flash</strong> based and block based file system classes support data<br />

storage with <strong>Flash</strong> memory devices<br />

� Proposed methods to evaluate file systems to work with <strong>Flash</strong> based<br />

and block based file system classes<br />

� <strong>Flash</strong> based file system uses MTD driver to work with raw <strong>Flash</strong><br />

memory devices<br />

� Block based file system uses FTL+MTD or custom low-level driver to<br />

work with RAW <strong>Flash</strong> memory devices<br />

� Block based file system uses MMC block driver stack to work with<br />

MMC <strong>Flash</strong> memory devices<br />

| ©2011 <strong>Micron</strong> Technology, Inc. |<br />

30

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!