Choosing a Linux Flash File System - Micron
Choosing a Linux Flash File System - Micron
Choosing a Linux Flash File System - Micron
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