YAFFS
维基百科,自由的 encyclopedia
YAFFS(全称:Yet Another Flash File System)是由Aleph One公司所发展出来的NAND Flash 嵌入式文件系统。
此条目没有列出任何参考或来源。 (2020年6月7日) |
开发者 | Charles Manning |
---|---|
全称 | Yet Another Flash File System |
功能 | |
操作系统支持 | Android、Firefox OS、Linux、Windows CE、pSOS、eCos、ThreadX |
在YAFFS中,最小存储单位为一个Page,文件内的数据是存储在固定512 bytes的Page中,每一个Page亦会有一个对应的16 bytes的Spare(OOB,Out-Of-Band)。YAFFS采用Tree Node Structure,由多个Tree Node(Tnode)所组成,Tnode又分成Internal Tnode与Lowest-Level Tnode,其中Internal Tnode由8个Pointers所组成,Lowest-Level Tnode由16个Entries所组成,其时间复杂度(Time Complexity)相当于O(log N),故地址转换时间较迅速。一旦Flash Memory挂载(mount)之时,YAFFS会为每个文件在RAM中建立一个Tree, 并随时提供Chunk(即Page, 由yaffs_Object所配置),可是 YAFFS并未完全实现耗损平均技术(wear-leveling)算法,因此还是会造成部分的Block过度存取。
目前YAFFS在将Data写入Flash Memory时会执行Garbage Collection,YAFFS Garbage Collection分成两种Mode:Aggressive Mode及Passive Mode, 而且找寻Dirtiest Block(最多Invalid Chunk)及查找Empty Block都是透过Linear Search的方式(JFFS2是Link List的方式)。YAFFS2不再使用Partial Page Programming(YAFFS仍使用)。