Chinaunix首页 | 论坛 | 博客
  • 博客访问: 90978
  • 博文数量: 66
  • 博客积分: 110
  • 博客等级: 民兵
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-18 09:34
文章分类
文章存档

2012年(66)

我的朋友

分类:

2012-07-26 11:27:51

作者:龙瑞 分类:自动化/计算机技术

摘要 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的寿命。

阅读(692) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~