2012年(66)
分类:
2012-07-26 11:27:51
原文地址:YAFFS嵌入式文件系统原理分析 作者:fly123456789
作者:龙瑞 分类:自动化/计算机技术
摘要 YAFFS是一种广泛用于嵌入式系统的文件系统,本文对YAFFS的工作原理做了探究。
关键词 YAFFS,嵌入式,文件系统
YAFFS(Yet Another Flash File System)是一种Flash文件系统,它是一种日志结构的文件系统,特别适用于大容量的NAND Flash芯片,是在NAND Flash上构建文件系统的最佳选择。现在很多NAND Flash被用作嵌入式系统中的大容量存储器,因此YAFFS的使用也越来越广泛。
现在在Flash上构建文件系统有两种方式:一种是用于Flash的块驱动程序,在块驱动程序之上,运行一个普通的文件系统例如FAT16,块驱动提供了一个逻辑层到物理层的过渡使得写Flash就像写磁盘一样。另一种是开发特殊的文件系统,它能够不通过块驱动程序而工作,例如JFFS和YAFFS。在了解YAFFS之前先了解一下YAFFS所运行的Flash芯片。NOR和NAND是目前市场上两种主要的非易失Flash闪存技术。NOR的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必把代码读到RAM中。NOR的传输效率很高,在1~4MB的小容量时有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。NAND能提供极高的单元密度,可以达到高存储密度,并且写入和擦除速度也很快,但是应用NAND需要特殊的系统接口。表1对 NAND和NOR两种Flash技术做了比较。
表1 NAND和NOR两种Flash技术比较
NAND NOR
性能 读速度慢
写速度快
擦除速度4ms
大多数写入操作前先进行擦除操作
擦除单元更小,擦除电路更少 读速度快
写速度慢
擦除速度5s
大多数写入操作前先进行擦除操作
接口 使用复杂I/O接口串行存取数据,各产品或厂商的方法各不相同
可以取代硬盘或其他块设备 带有RAM接口,很容易存取每一个字节
容量和
成本 NAND的单元尺寸几乎是NOR的一半,价格更低,主要用于大容量数据存储 单元价格比NAND高,主要用于小容量代码存储
可靠性和耐用性 最大擦写次数一百万次
容易发生位反转,必须采用ECC算法 最大擦写次数十万次
易用性 需要特殊的I/O接口连接,使用NAND时必须先写入驱动程序 可以像其他存储器一样连接,并可以在上面直接运行代码
软件支持 在NAND上进行操作需要驱动程序 在NOR上运行代码不需要任何软件支持
YAFFS是一种类似于JFFS/JFFS2的专门为NAND Flash设计的嵌入式文件系统。与专为NOR Flash而设计的JFFS相比,它减少了一些功能,因此速度更快、占用内存更少。YAFFS和JFFS都提供了写均衡,垃圾收集等底层操作。它们的不同之处在于:
1.JFFS中使用多级链表管理需要回收的脏块,并且使用系统生成伪随机变量决定要回收的块,通过这种方法能提供较好的写均衡,在YAFFS中是从头到尾对块搜索,所以在垃圾收集上比JFFS的速度慢,但是能延长NAND的寿命。