yaffs

YAFFS(Yet Another Flash File System)是由Aleph One公司所发展出来的NAND flash 嵌入式文件系统。
在YAFFS中,最小存储单位为一个页(Page),文件内的数据是存储在固定512 bytes的页中,每一页亦会有一个对应的16 bytes的Spare(OOB,Out-Of-Band)。YAFFS采用树形结构(Tree Node Structure),由多个树节点(Tree Node,Tnode)所组成,树节点又分成内部节点(Internal Tnode)与底层树节点(Lowest Level Tree node),其中内部节点由8个指针(Pointers)所组成,底层树节点由16个入口(Entries)所组成,其时间复杂度(Time Complexity)相当于O(log N),故地址转换时间较迅速。一旦闪存(Flash Memory)挂载(mount)之时,YAFFS会为每个文件在RAM中创建一棵树, 并随时提供Chunk(即Page, 由yaffs_Object所配置),可是 YAFFS并未完全实现耗损平均技术(wear-leveling)算法,因此还是会造成部分的块(Block)过度访问。
YAFFS在将数据(Data)写入闪存时会运行垃圾回收(Garbage Collection),YAFFS 垃圾回收分成两种模式:主动模式(Aggressive Mode)及被动模式(Passive Mode), 而且找寻脏块(Dirtiest Block)(最多Invalid Chunk)及查找空块(Empty Block)都是通过线性搜索(Linear Search)的方式(JFFS2是Link List的方式)。YAFFS2不再使用非全页编程(Partial Page Programming)(YAFFS仍使用)。

posted on 2021-11-23 02:15  lydstory  阅读(225)  评论(0)    收藏  举报

导航