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   lydstory  阅读(214)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2020-11-23 C++ 使用OPENSSL AES DES 加密和JAVA 对接注意事项
2020-11-23 des加密模式
2020-11-23 Not-Yet-Commons-SSL
2020-11-23 java c++ des
2020-11-23 java openssl
2020-11-23 java读取一个文件到byte数组
2020-11-23 des 函数

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示